我有一个 Access 数据库,并且正在使用传递查询从 AS400 表返回记录。连接字符串和传递查询工作正常,但现在我尝试将 p-t 查询的结果填充到数据库内的本地表中,而我的代码超时。这是我第一次尝试 ADO,因此我声明“我不是 100% 确定我在做什么!”。你能看一下这个,看看我是否做错了什么明显的事情?任何方向将不胜感激。先感谢您。
Sub mod_ADODBConnect()
Const NewTableName = "MyNewTable"
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim db As DAO.Database
Dim sSQL1 As String
Dim sSQL2 As String
sSQL1 = "SELECT ITMNUM, ITMDS, ITPKDS, MJCMCD, SBCMCD, STATUS, PRITIN, OGEXDT from PDBLLIB007.BLPMST07"
sSQL2 = "INSERT INTO ' & NewTableName & ' SELECT [" & sSQL1 & "].* from [" & sSQL1 & "]"
Set cn = New ADODB.Connection
cn.Open "Driver={Client Access ODBC Driver (32-bit)};" & _
"System=DC007; Uid=XXXXX; Pwd=XXXXXX; MgDSN=0; ConnType=2;" & _
"BlockSize=512; MaxFieldLen=2048; LazyClose=1; Prefetch=1; QueryTimeOut=0; Translate=1"
Set rs = New ADODB.Recordset
rs.Open sSQL1, cn, adOpenDynamic, adLockOptimistic
Do While Not rs.EOF
rs.MoveNext
Loop
Set db = CurrentDb
db.Execute ("sSQL2")
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
Set db = Nothing
End Sub
您有一个传递查询,它可以正常工作并返回您想要的行。现在您想要将这些行存储在新的本地 (Jet/ACE) 表中。在我看来,一种更简单的方法是使用传递作为新“中的数据源”做桌子" query.
SELECT * INTO MyNewTable FROM YourPassThruQuery;
哎呀,看起来您打算将这些行附加到现有表中。
INSERT INTO MyNewTable
SELECT * FROM YourPassThruQuery;
如果表结构不匹配,您可以对两个表使用字段列表。
INSERT INTO MyNewTable (fld1, fld2)
SELECT first_field, second_field FROM YourPassThruQuery;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)