Access如何用VB将窗体中文本框中的内容添加到相应的Access表中?

access表中有:姓名、工号、技能、数量 四个字段;表名称为:“表1”
窗体中有:text1,text2,text3,text4 四个文本框;
如何添加按钮VB代码?

请高手帮帮忙!
Dim db As New ADODB.Connection
Dim rrs As New ADODB.Recordset
Private Sub Command1_Click()
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\123.MDB"
rrs.Open "数据表", db, 3, 3
rrs.AddNew
rrs.Fields(0).Value = Text1.Text
rrs.Fields(1).Value = Text2.Text
rrs.Fields(2).Value = Text3.Text
rrs.Update
rrs.Close
db.Close
MsgBox "记录已经成功添加!"
End Sub
最新回答
白小葭

2024-10-31 04:45:58

首先,我们需要引用ADO.具体的方法是,在"工程"
-- "引用" 中,找到"Microsoft ActiveX Data Object 2.8 Library" ,勾选后点确定
下面介绍2种方法:
1
Private Sub Command1_Click()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\a.mdb " 'a.mdb是ACCESS数据库保存在程序目录下
rs.Open "select * from 表1 ", conn, 2, 2
Set rs = conn.Execute("Insert Into 表1 (姓名,工号,技能,数量) Values('" & Text1 & "','" & Text2 & "','" & Text3 & "','" & Text4 & "')")
MsgBox "添加成功!", vbInformation, "提示!"
Text1 = ""
Text2 = ""
Text3 = ""
Text4 = ""
Text1.SetFocus
conn.Close
End Sub

2
Private Sub Command1_Click()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\a.mdb " 'a.mdb是ACCESS数据库保存在程序目录下
rs.Open "select * from 表1 ", conn, 2, 2
rs.AddNew
rs.Fields("姓名").Value = Text1
rs.Fields("工号").Value = Text2
rs.Fields("技能").Value = Text3
rs.Fields("数量").Value = Text4
rs.Update
rs.Close
conn.Close
MsgBox "成功添加信息!", vbExclamation, "提示!"
Text1 = ""
Text2 = ""
Text3 = ""
Text4 = ""
Text1.SetFocus
End Sub
追问
运行时错误:424
要求对象

conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & APP.Path & "\a.mdb " 'a.mdb是ACCESS数据库保存在程序目录下
这句出错了,'a.mdb是ACCESS数据库保存在程序目录下 不太明白,a.mdb
能不能再详细讲下或引用时需要改什么?非常感谢你的帮助,,,学习了!谢谢
追答

这么说吧,假如你的工程文件在F盘的软件文件夹里,数据库也要在F盘的软件文件夹。如下图


'a.mdb是ACCESS数据库保存在程序目录下,这一句是说明可以删除的

VB 6.0的代码窗体如下

追问
我感觉我问题意思弄错误了;
我只是用ACCESS做个小程序而已,只是想把ACCESS窗体中的文本框内容,rs添加到这个ACCESS中的一个表里,
这样的话这句话是不是就不要了?
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\a.mdb "
那下面语句怎么写呢?
???
追答

那不好意思了,ACCESS窗体我不会

我说的是 Microsoft Visual Basic 6.0 中文版(简称VB),如附件


望春风

2024-10-31 06:36:08

窗体没有数据源吗?你是不是想通过窗体来向表1添加数据呢?如果是这样的话,你就把窗体的数据源设为表1,然后把text1文本框连接到姓名,text2文本框连接到工号,text3连接到技能,text4文本框连接到数量。最后在窗体上再加一个按钮(假设按钮名为“A”)。按钮的语句就这样写:

DoCmd.RunCommand acCmdSaveRecord
DoCmd.GoToRecord , , acNewRec
text1.SetFocus

添加数据时,先按一下按钮A,然后在四个文本框填写数据,填写完之后,再按一下按钮A,四个文本框中的数据就添加到表1中了呀。
追问
是这么个情况,数据源有一个表“表2”,可以默认保存到表2的,但是我想同时可以保存到“表1”中
追答
你在我上面说的按钮语句最后再加上下面的语句试试。

Dim StrSQL As String
Let StrSQL = "INSERT INTO [表1] SELECT top 1 * FROM [表2] order by 字段名 DESC"
CurrentDb.Execute StrSQL

我上面语句是把表2中最后一条记录添加到表1中。因为数据库的最后一条记录是不确定的,取决于你按哪一个字段排序,怎么排序。所以你得给表1和表2都加一个索引字段,并按索引字段升序排序。
追问
你这方法按理应该是可以的,但是我还是想用这种方法:

请看我补充的VB代码,这也是我从百度里搜索别的答案,类似差不多,但是我引用就会出错
追答
第三位回答的网友很好地解答了我一直以来无法使用ADO的疑问,在此表示感谢!
第三位回答的网友说首先,我们需要引用ADO,具体的方法是:在“工程”
-- “引用” 中,找到"Microsoft ActiveX Data Object 2.8 Library" ,勾选后点确定。

另外楼主补充的代码中有一个地方有问题,就是
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\123.MDB"

应该改为

db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & CurrentProject.Path & "\123.MDB"

就没问题了。
追问
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & CurrentProject.Path & "\123.MDB"

为什么我引用3楼的,提示”要求对象“ ,怎么找不到对象,没有弄明白这句的意思?
追答
不知你的路径中有没有中文,路径中最好不要出现中文。
追问
没有中文路径,conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\C:\Documents and Settings\MH\Desktop\NEWWIP.mdb "
是这样子吗?我看别的系统中没有这个路径啊,是不是系统使用后会默认修改?
追答
不是的,一定要

db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & CurrentProject.Path & "\NEWWIP.MDB"

这样才行。

另外,你最好不要放在桌面上,你把NEWWIP.mdb放在D盘根目录,或者是随便在D盘建个文件夹放进去试试,我以前放在桌面,用相对路径系统找不到。
那么没心没肺

2024-10-31 03:23:53

Dim adoN As New ADODB.Connection

dbname = MePath & "MeDB.mdb" '路径+数据库名
strcnn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & _
dbname & ";Persist Security Info=False"
adoN.Open strcnn '打开数据库

Dim adoR As New ADODB.Recordset
Set adoR.ActiveConnection = adoN '连接连接对象
adoR.CursorType = adOpenKeyset '设置游标类型
adoR.LockType = adLockOptimistic '设置锁定类型: 开放式 逐条
SQLs = "SELECT * FROM 表1"
adoR.Open SQLs '打开记录
adoR.AddNew '添加
' adoR("ccID") =自动
adoR("名 称") = Trim(Text1(0)) ‘字段名改成你的
adoR("ccLXID") = LeiXing
adoR("位 置") = Trim(Text1(2))
adoR("包 装") = Trim(Text1(3))
adoR("备 注") = Trim(Text1(4))
adoR("连 接") = Trim(Text1(5))
adoR.Update
adoR.Close '关闭
adoN.Close '关闭连接
追问
dbname = MePath & "MeDB.mdb"     '路径+数据库名
strcnn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & _
dbname & ";Persist Security Info=False"

中路径怎么设定的啊?数据库名任意设定吗?
学习了!谢谢!@
追答
直接写:“C:/文件夹名/数据库名.mdb" 也行,这是格式,是否在c盘或在哪里,得看你把数据库放哪里了。
MePath = ”c:/你放在哪里了/"
数据库名是你使用access建立的文件的名称,你需要首先使用access建立数据库,并且建立具有你所需数据字段的【表】。