Office中国论坛/Access中国论坛

标题: 在不用链接表的库里,怎么实现多条记录更新到后台表? [打印本页]

作者: accesscx    时间: 2010-10-28 16:11
标题: 在不用链接表的库里,怎么实现多条记录更新到后台表?
库不用链接表,都用
x(0) = "select * from lingjianbiao where bianhao='" & Me.Text7 & "'"
rs(0).Open x(0), Z_CnnDB_S, 1, 3, 512
这样的方式下载数据到本地表

'打开服务数据库Data的connection连接
Option Compare Database
Public Z_CnnDB_S As ADODB.Connection
Function AutoExec()
On Error GoTo err_1
   Set Z_CnnDB_S = New ADODB.Connection
  Z_CnnDB_S.CursorLocation = adUseClient
  Z_CnnDB_S.Provider = "Microsoft.Jet.OLEDB.4.0"
  Z_CnnDB_S.Open "Data Source=" & "\\srv-lj-01\Application\Express & P.O"    & "\Document_Data.mdb;Jet OLEDbataBase Password=123456"
err_2:
  Exit Function
err_1:
MsgBox err.Number & err.Description
Resume err_2
End Function

问题:子窗有多条记录,在主窗做了个保存按钮,下面是按钮代码,想实现点保存把子窗多条记录更新到表后台表lingjianbiao ,怎么写才对?

x(0) = "select * from lingjianbiao where bianhao='" & Me.Text7 & "'"
rs(0).Open x(0), Z_CnnDB_S, 1, 3, 512
Me.lit_lingjianbiao_lchd.Form.Recordset.MoveFirst
Do Until Me.lit_lingjianbiao_lchd.Form.Recordset.EOF
    rs(0)!bianhao = Me.lit_lingjianbiao_lchd.Form.bianhao
    rs(0)!mingcheng = Me.lit_lingjianbiao_lchd.Form.mingcheng
rs(0).update
Me.lit_lingjianbiao_lchd.Form.Recordset.MoveNext
Loop
rs(0).Close

如果用 update xxx set aaa=bbb 会找不到表的,因为库没有连接表
作者: tmtony    时间: 2010-10-28 16:20
子窗体作为一个记录集rs1  链接表作一个记录集rs2
rs2("字段")=rs1("字段")
作者: accesscx    时间: 2010-10-29 08:57
tmtony 发表于 2010-10-28 16:20
子窗体作为一个记录集rs1  链接表作一个记录集rs2
rs2("字段")=rs1("字段")

  下面这样写得到不正确的结果,再请教:
x(0) = "select * from lingjianbiao"
rs(0).Open x(0), Z_CnnDB_S, 1, 3, 512
x(1) = "select * from lit_lingjianbiao_ll"
rs(1).Open x(1), CurrentProject.Connection, 1, 3, 512

rs(1).MoveFirst
Do Until rs(1).EOF = True
rs(0)("mingcheng") = rs(1)("mingcheng")
rs(0).update
rs(1).MoveNext
Loop

子窗体记录:
  零件编号                零件名称
11-0001-BKE21-01Y         BKE21
11-0001-BKA11-01Y                        BKA11

保存到后台的结果:
    零件编号                零件名称
11-0001-BKE21-01Y            1
11-0001-BKA11-01Y                        BKE21



作者: tmtony    时间: 2010-10-29 09:41
rs(0) 没有新增 也没有 对应某条记录,怎么就更新呢。
你需要addnew,或先定位到对应的一条记录才更新,否则永远 都是更新第一条
作者: accesscx    时间: 2010-10-29 09:50
本帖最后由 accesscx 于 2010-10-29 09:54 编辑
tmtony 发表于 2010-10-29 09:41
rs(0) 没有新增 也没有 对应某条记录,怎么就更新呢。
你需要addnew,或先定位到对应的一条记录才更新,否则 ...


addnew是添加记录了,定位记录是在X(0),X(1)加条件?结果还是不对,如何定位记录?

x(0) = "select * from lingjianbiao where bianhao='" & Me.lit_lingjianbiao_lchd.Form.bianhao & "'"rs(0).Open x(0), Z_CnnDB_S, 1, 3, 512
x(1) = "select * from lit_lingjianbiao_ll where bianhao='" & Me.lit_lingjianbiao_lchd.Form.bianhao & "'"rs(1).Open x(1), CurrentProject.Connection, 1, 3, 512

rs(1).MoveFirst
Do Until rs(1).EOF = True
'rs(0).AddNew
rs(0)("mingcheng") = rs(1)("mingcheng")
rs(0).update
rs(1).MoveNext
Loop




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3