Excel实例下载
  VBA  应用教程
    数据库SQL知识
设为首页
UPDATE - 修改数据库中已有的数据
作者:bengdeng | 来源:Excel吧 | 时间:2008-10-10 | 阅读权限:游客 | 会员币:0 | 【

前面一篇 SQL语言教程 介绍了 INSERT INTO ,我们已可以向数据库中添加新的数据,这一篇我们接着介绍UPDATE,用来修改数据库中已有的数据。UPDATE 的语法为:

UPDATE 表格名 SET 列名1 = 数值1, 列名2 = 数值2,……  WHERE {条件}

UPDATE如果不指定条件,则会修改指定数据表中所有的数据,而指定条件后,则后修改数据表中所有满足条件的数据,下面,我们还是来写段程序来理解一个UPDATE的用法。

这段程序的功能是在进仓表中录入一条新记录——铅笔,10,然后更新明细表中对应铅笔项下的进仓数量,在原来的基础上增加10,程序如下:

Sub 更新销存表数据库中的数据()
'*******************************************
'时间:2008-10-10
'作者:bengdeng
'功能:在程序文件同一目录下进销存表数据库中更新数据
'注意:要在工具/引用中引用microsoft activex date objects x.x
'      其中x.x为版本号,可能会因为你安装的office的版本不同而不同,本例引用了2.5版
'发布:http://www.excelba.com
'*******************************************
Dim conn As ADODB.Connection
Dim WN As String
Dim TableName1 As String
Dim TableName2 As String
Dim sSql As String
Dim Sl As Long

WN = "进销存表.mdb"
TableName1 = "明细表"
TableName2 = "进仓表"
Sl = 10

Set conn = New ADODB.Connection
conn.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;" & _
                        "Data Source=" & ThisWorkbook.Path & "\" & WN
conn.Open
If conn.State = adStateOpen Then
    sSql = "INSERT INTO " & TableName2 & " (进仓日期,物品名称, 进仓数量) VALUES (#" & Date & "#,'铅笔'," & Sl & ")"
    conn.Execute sSql
    sSql = "UPDATE " & TableName1 & " SET 进仓数量 = 进仓数量 + " & Sl & " WHERE 物品名称 = '铅笔'"
    conn.Execute sSql
    MsgBox "成功在“" & TableName2 & "”中增加了一条记录!", , "http://excelba.com"
    conn.Close
End If
Set conn = Nothing
End Sub

之后,也给出一段操作Excel的代码,从这几篇文章的程序,大家对比一下应该可以发现,其实这两段代码主要的区别就在于conn.ConnectionString的不同和在引用Excel工作表是,应该在Excel工作表名称后多加一个$。

Sub 更新进销存表文件中的数据()
'*******************************************
'时间:2008-10-10
'作者:bengdeng
'功能:在程序文件同一目录下进销存表文件中更新数据
'注意:要在工具/引用中引用microsoft activex date objects x.x
'      其中x.x为版本号,可能会因为你安装的office的版本不同而不同,本例引用了2.5版
'发布:http://www.excelba.com
'*******************************************
Dim conn As ADODB.Connection
Dim WN As String
Dim TableName1 As String
Dim TableName2 As String
Dim sSql As String
Dim Sl As Long

WN = "进销存表.xls"
TableName1 = "明细表"
TableName2 = "进仓表"
Sl = 10

Set conn = New ADODB.Connection
conn.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;" & _
                        "Extended Properties=Excel 8.0;" & _
                        "Data Source=" & ThisWorkbook.Path & "\" & WN
conn.Open
If conn.State = adStateOpen Then
    sSql = "INSERT INTO [" & TableName2 & "$] (进仓日期,物品名称, 进仓数量) VALUES (#" & Date & "#,'铅笔'," & Sl & ")"
    conn.Execute sSql
    sSql = "UPDATE [" & TableName1 & "$] SET 进仓数量 = 进仓数量 + " & Sl & " WHERE [物品名称] = '铅笔'"
    conn.Execute sSql
    MsgBox "成功在“" & TableName2 & "”中增加了一条记录!", , "http://excelba.com"
    conn.Close
End If
Set conn = Nothing
End Sub

最后大家还是动下手,复制上面的代码,运行一下看看效果吧。

如果不是从第一篇教程看起的朋友,上面这两个程序需要的数据库与文件,请到http://www.excelba.com/Art/Html/293.html 中利用里面的代码生成这篇文章需要的文件,然后再运行上一篇文章http://www.excelba.com/Art/Html/299.html 中的代码在明细表中增加铅笔的记录,最后再运行这两段代码。一天进步一点,慢慢地,我们就会更强大*^_^*

文章录入:admin | 浏览次数:
相关评论(以下网友评论只代表其个人观点,不代表Excel吧的观点或立场)
相关信息

关于本站 | 留言本站 | 友情连接 | 后台管理
Copyright © 2005 - 2008 Excel吧 Inc. All Rights Reserved.
HxCms Ver9.0  闽ICP备06001689号
关闭此窗口