Office中国论坛/Access中国论坛

标题: 如何用ADO的Recordset对象生成本地ACCESS表? [打印本页]

作者: xingzhihao    时间: 2010-9-18 19:51
标题: 如何用ADO的Recordset对象生成本地ACCESS表?
本帖最后由 xingzhihao 于 2010-9-18 22:03 编辑

如题:

或者绑定窗体数据源也可以。

希望有一个例子,或代码。请高人指点了,谢谢

作者: xinbao    时间: 2010-9-18 20:40
要生成表,好像要用adox吧, ADO应该不能生成了
作者: aslxt    时间: 2010-9-18 21:15
首先根据Recordset对象的字段属性,创建一个表,然后addnew。代码实例没有。
顺便说一下,既然ado可以连接数据源,在查询中直接用生成表查询也可以的。
作者: xingzhihao    时间: 2010-9-18 22:00
aslxt ,感谢你的帮助!

在查询中直接用生成表查询的方法,我试过。还有不足。

问题是生成的表在远程服务器端,而不是在本地,如何解决?

作者: aslxt    时间: 2010-9-18 22:25
回复 xingzhihao 的帖子

你的问题是【...生成本地ACCESS表?】,怎么又要在远端服务器生成表了?
   
作者: xingzhihao    时间: 2010-9-19 10:42
本帖最后由 xingzhihao 于 2010-9-19 10:44 编辑

aslxt ,感谢你的关注

我的意思是运行 生成表查询 后,生成的表在远端服务器上,而我需要的是在本地生成ACCESS表。

运行 生成表查询 行不通呀

作者: t小宝    时间: 2010-9-19 11:04
ADO记录集可以直接绑定到窗体
Set Me.Recordset=rst
作者: xingzhihao    时间: 2010-9-19 13:27
本帖最后由 xingzhihao 于 2010-9-19 13:32 编辑

Set conn = New ADODB.Connection
Set Rs = New ADODB.Recordset


conn.ConnectionString = "driver={sql server};server=123.21.23.21;uid=sa;pwd=12345;Database=master"
conn.ConnectionTimeout = 50
conn.Open
Dim str As String
'连接连接对象
Set Rs.ActiveConnection = conn
'设置游标类型'游标类型为 可以看到记录集的 增删改
Rs.CursorType = adOpenDynamic
str = "select * from 一般情况表"
Rs.Open str
Rs.MoveLast
Set Me.Recordset = Rs

提示这一行错误: Set Me.Recordset = Rs


[attach]43523[/attach]


小宝:指点一下

作者: 红尘如烟    时间: 2010-9-19 13:37
把ADO记录集绑定到窗体要使用本地游标
rst.CursorLocation=adUseClient
rst.Open
作者: t小宝    时间: 2010-9-19 13:59

Rs.CursorType = adOpenDynamic

把adOpenDynamic改为adOpenStatic是可以,但也许不能编辑你试试看


作者: t小宝    时间: 2010-9-19 14:27
没看到9楼的....应该是红尘的方法对
作者: xingzhihao    时间: 2010-9-19 14:49
感谢红尘、小宝二位版主热心解答!!

以上方法绑定窗体成功。

前几天看到一篇文章提到ACCESS只能用只向前和静态2种游标,但是一带而过,没有深入理解
现在想起,才有深刻体会。
关于这2种游标,太遗憾的是 【只读 】的,不能编辑。

如何实现编辑,或者间接实现编辑数据呢?


作者: xingzhihao    时间: 2010-9-19 15:53
我发现不管使用客户端游标,还是服务器游标
运行生成表查询,生成的表都在服务器上。
如何生成本地表呢?

作者: xingzhihao    时间: 2010-9-19 21:55
Dim Conn As New ADODB.Connection
Dim Rst As New ADODB.Recordset
Dim NetRst As New ADODB.Recordset
Dim NetConn As New ADODB.Connection
Dim Server As String
Dim sql As String
Server = "\\Dateserver\Access<\数据库\数据分析主体.mdb"
Set Conn = CurrentProject.Connection
NetConn = "rovider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Trim(Server) + ";"
sql = "select * from 排单表"
NetRst.Open "select * from 排单表", NetConn, adOpenDynamic, adLockOptimistic

Rst.Open sql, Conn, adOpenDynamic, adLockOptimistic
'把记录写到本地表
Do While Not NetRst.EOF
Rst.AddNew
Rst.Fields("A") = NetRst.Fields("A")
Rst.Update
NetRst.MoveNext
Loop
Set NetRst = Nothing
Set Rst = Nothing

作者: t小宝    时间: 2010-9-20 23:51
我发现不管使用客户端游标,还是服务器游标
运行生成表查询,生成的表都在服务器上。
如何生成本地表呢? ...
xingzhihao 发表于 2010-9-19 15:53



以下为在mdb中从SQL数据库表(js_qyrk)生成本地同名表的2种语句:
第一种,建立了DSN数据源(js1)
DoCmd.RunSQL "Select * INTO js_qyrk From [ODBC;DSN=js1;Trusted_Connection=Yes].[dbo.js_qyrk]"
第二种,不建立DSN数据源,直接引用数据库名(jsdat)
DoCmd.RunSQL "Select * INTO js_qyrk From [ODBC;driver={sqlserver};server=(Local);uid=;pwd=;Database=jsdat].[dbo.js_qyrk]"
作者: xingzhihao    时间: 2010-9-21 16:21
向小宝老师献花,呵呵。再次感谢!!!




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