设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1771|回复: 4
打印 上一主题 下一主题

[Access本身] 在不用链接表的库里,怎么实现多条记录更新到后台表?

[复制链接]
跳转到指定楼层
1#
发表于 2010-10-28 16:11:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
库不用链接表,都用
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 会找不到表的,因为库没有连接表
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2010-10-28 16:20:28 | 只看该作者
子窗体作为一个记录集rs1  链接表作一个记录集rs2
rs2("字段")=rs1("字段")
3#
 楼主| 发表于 2010-10-29 08:57:32 | 只看该作者
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


点击这里给我发消息

4#
发表于 2010-10-29 09:41:28 | 只看该作者
rs(0) 没有新增 也没有 对应某条记录,怎么就更新呢。
你需要addnew,或先定位到对应的一条记录才更新,否则永远 都是更新第一条
5#
 楼主| 发表于 2010-10-29 09:50:45 | 只看该作者
本帖最后由 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
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-29 17:52 , Processed in 0.104176 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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