ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 10330|回复: 2

[求助] 向ACCESS中添加数据用语句是APPEND吗?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-7-12 09:05 | 显示全部楼层 |阅读模式
向ACCESS中添加数据用语句是APPEND  BLANK吗?

TA的精华主题

TA的得分主题

发表于 2009-7-12 10:18 | 显示全部楼层
rs.addnew
....
rs.update
我喜欢用这个
INSERT INTO 表格名 (列名1, 列名2, ...) VALUES (数值1, 数值2, ...)
这个我比较少用

TA的精华主题

TA的得分主题

发表于 2009-7-12 10:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
INSERT INTO - 向数据库中添加数据
作者:bengdeng | 来源:Excel吧 | 时间:2008-10-09 | 阅读权限:游客 | 会员币:0 | 【大 中 小】
国庆长假终于过去,手上的事也忙得差不多,继续我们的SQL之路,下面的好多语句应该都不能单独说明,因为很多情况下都是组合在一起用的,不过为了一篇文章一个知识点,一个个的来了解,我们就从向数据库添加数据的INSERT INTO开始。

前面几篇 SQL语言教程 中介绍SQL的文章后,我们已可以创建,修改与删除一个数据库,今天介绍的INSERT INTO,我们就可以向上面创建的数据库中添加数据。INSERT INTO添加数据基本有两种方法:一种是一次性输入一笔数据,另一种是一次性输入多笔数据。因为后者还要用到SQL语句中最核心,最重要,最常用,也是最难全懂的Select语句,因此在这一篇文章中,我们先介绍第一种,语法如下:

INSERT INTO 表格名 (列名1, 列名2, ...) VALUES (数值1, 数值2, ...)

上面的语法就是向表格名中指定的表格里添加一行新的数据,在列名1,列名2……中添加对应的值,需要说明的一点是,不一定表格中的每一个列名都指定值,如果没有指定,该列的值就是设定数据库时默认的值。如果列的数值没有,而设定数据库时该列设定的是必填字段,而程序会提示出错。

按照惯例,我们还是给出一段程序来让我们更了解上面说的内容:

Sub 向销存表数据库录入数据()
'*******************************************
'时间:2008-10-9
'作者: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 TableName As String
Dim sSql As String
WN = "进销存表.mdb"
TableName = "明细表"

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 " & TableName & " (物品名称, 结余日期,结余数量,进仓数量,出仓数量)" & _
           "VALUES ('铅笔',#" & Date & "#,0,0,0)"
    conn.Execute sSql
    MsgBox "成功在“" & TableName & "”中增加了一条记录!", , "http://excelba.com"
    conn.Close
End If
Set conn = Nothing
End Sub

上面的程序有两点特别说明一下:一个是字符串可以用单引号来特别确认,这个在字符串与SQL的一些保留关键词一样时,特别需要注意;另一个是日期数值的表示方式为——#日期#,否则不正确。同样,我们也给出一段操作Excel的代码:

Sub 向销存表文件录入数据()
'*******************************************
'时间:2008-10-9
'作者: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 TableName As String
Dim sSql As String
WN = "进销存表.xls"
TableName = "明细表"

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 [" & TableName & "$] (物品名称, 结余日期,结余数量,进仓数量,出仓数量)" & _
           "VALUES ('一笔',#" & Date & "#,0,0,0)"
    conn.Execute sSql
    MsgBox "成功在“" & TableName & "”中增加了一条记录!", , "http://excelba.com"
    conn.Close
End If
Set conn = Nothing
End Sub

向表中增加并更新记录
Sub addValues()
    Dim cnn As New ADODB.Connection
    Dim rst As New ADODB.Recordset
    Dim myPath As String
    Dim myTable As String
    Dim arrALL()
    Dim arrFields()
    Dim arrValues()
    Dim i As Long
    Dim r As Long
    myPath = ThisWorkbook.Path & "\学校管理.mdb"
    myTable = "学生档案"
    On Error GoTo errmsg
    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & myPath
    rst.Open "select * from " & myTable & " where 1=2", cnn, adOpenDynamic, adLockOptimistic
    With Sheet1
        r = .Range("a1").End(xlDown).Row
        arrALL = .Range("a1:j" & r)
        arrFields = WorksheetFunction.Index(arrALL, 1, 0)
        For i = 2 To r
            arrValues = WorksheetFunction.Index(arrALL, i, 0)
            rst.AddNew arrFields, arrValues
        Next
    End With
    MsgBox "数据添加成功", , "添加数据"
    Exit Sub
errmsg:
    MsgBox Err.Description, , "错误报告"
End Sub
最后大家自己动一下复制上面的代码,在VBA里操作一下,就能更好的理解了。希望通过这些文章,能让你开始对SQL的应用感兴趣,并应用到工作与生活中。

如果没有看到CREATE TABLE - 创建数据表的语句文章的朋友请到http://www.excelba.com/Art/Html/293.html 中利用里面的代码生成这篇文章需要的文件,然后再运行一下这两段代码吧。


转载请注明:本文来自:Excel吧 (www.excelba.com) 详细出处参考:http://www.excelba.com/Art/Html/299.html
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 02:52 , Processed in 0.030223 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表