数据库AAA中有2张表格,分别是DDD(商品信息表)和EEE(商品名录),EEE(商品名录表)中有Sysno(系统编号)和commno(商品编号)2个字段,系统编号单一对应一个商品编号。DDD(商品信息表)中有两个字段,Sysno(系统编号)和commname(商品名称)。。需求:从商品名称(DDD表中的commname)字段中,查找含有商品名录中商品编号(EEE-commno)的字段,并将相应的系统编号更新进入DDD表格相应位置。 DDD EEEsysno commname sysno commno(空) 三星NH004电视机 S01 NH004(空) NH004 三星电视机 S02 MI001(空) 小米MI001电视机 (空) 小米电视机 MI001 (空) 三星电视机NH004 (空) MI001小米电视机 自动将DDD的(空)字符段赋值Option Compare DatabaseSub Date_SysNoInput() Dim AAA As ADODB.ConnectionDim abc As ADODB.RecordsetSet AAA = CurrentProject.ConnectionSet abc = New ADODB.Recordsetabc.LockType = adLockBatchOptimisticabc.Open "EEE", AAA, , , adCmdTable Dim bl_sysno As StringDim bl_commno As StringDim sql As String Do While abc.EOF bl_sysno = abc!SysNo bl_commno = abc!CommNo abc.MoveNext sql = "UPDATE [DDD] SET [DDD].SysNo = "bl_sysno"WHERE ((([DDD].CommName)="bl_commno" Or ([DDD].CommName) Like "*bl_commno" Or ([DDD].CommName) Like "*bl_commno*" Or ([DDD].CommName) Like "bl_commno*"));" DoCmd.RunSQL "sql"Loop abc.CloseAAA.CloseSet abc = NothingSet AAA = NothingEnd Sub
1、代码不能运行那是你的问题===>你必须让代码能够运行起来;
2、代码运行起来后出现错误,标识出错的地点和错误提示;
3、发代码的话,最好放在这里:你的代码,这样看起来舒服点。另外:在你的sql=....语句后面设置一个断点或添加一行 debug.print sql看看结果是什么....
在VB6中没有象C/C++、Java等语言中的“转义”字符,双引号是用来把“字符串括起来”的。
如果要把双引号作为字符串的内容,可以用连续的两个双引号表示一个双引号,
(这也许是VB6中唯一的“转义字符” )
或者,把你的SQL语句中的双引号全部改用单引号。
Dim AAA As New ADODB.Connection
Dim abc As New ADODB.Recordset就可以,不需要Set AAA = CurrentProject.Connection 等语句。
首先你必须建立一个数据库,数据库中有二个数据表,DDD、EEE,没有数据库怎么运行?给你简单做一个:
Dim AAA As New ADODB.Connection, ABC As New ADODB.Recordset, CDE As New ADODB.RecordsetSub KKK(AAA)
AAA.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & App.Path & "\BBB1.accdb"
AAA.Open
End SubPrivate Sub Form_Load()
Call KKK(AAA)
CDE.Open "Select * From EEE", AAA, 3, 2
Do While Not CDE.EOF
ABC.Open "Select * From DDD WHERE commname LIKE '%" & CDE.Fields(2) & "%'", AAA, 3, 2
Do While Not ABC.EOF
ABC.Fields(1) = CDE.Fields(2) '将EEE表中的commno的值存储到DDD表的sysno的相应字段中
ABC.Update
ABC.MoveNext
Loop
ABC.Close
CDE.MoveNext
Loop
CDE.Close
AAA.Close
MsgBox "操作完成!"
End Sub
不是很复杂的,看图,左边是操作前的DDD表,右边是操作后的DDD表