【发布时间】:2017-08-11 21:13:01
【问题描述】:
我正在尝试创建一个事件,该事件将使用ADODB 连接。
到目前为止,经过大量研究,我能够建立连接并能够执行对 oracle db 表的截断查询,请参见下面的代码。我在这方面非常新,所以如果有人帮助实现这一点,那就太好了。
供您参考,ms 数据库名称是 Ded-Limit-ACCM.accdb,我已将两个表的列名称设为相同,请帮助...
Private Sub CheckCon()
Dim rs As New ADODB.Recordset
'Dim db As Database
' Dim cntr As Long
Dim con As New ADODB.Connection
Dim str As String
'con.Open ("Provider=PROVIDER;Data Source=SOURCE;User ID=USERID; Password=PASSWORD;")
str = "Provider=PROVIDER;Data Source=SOURCE;Persist Security Info=True;Password=PASSWORD;User ID=USERID"
'Set cnn = CreateObject(“ADODB.Connection”)
con.Open str
'Set rs = CreateObject(“ADODB.Recordset”)
If con.State = adStateOpen Then
MsgBox "Welcome to database!"
Else
MsgBox "Sorry. No database."
End If
strSQL = "truncate table ded_limit_analysis"
rs.Open strSQL, con
Do Until rs.EOF
MsgBox rs.Fields(0)
rs.MoveNext
Loop
End Sub
添加到目前为止我已经完成但没有任何运气的代码,我也没有收到任何错误,请参阅下面的代码。
Private Sub comInsert_Click()
Dim rs As New ADODB.Recordset
Dim con As New ADODB.Connection
Dim strSQL As String
Dim str As String
Dim dbs As Database
Set dbs = OpenDatabase("C:\Users\cthoud01\Documents\Ded-Limit-ACCM.accdb")
str = "Provider=MSDAORA;Data Source=SOURCE;Persist Security Info=True;Password=PASSWORD;User ID=USERID"
con.Open str
If con.State = adStateOpen Then
MsgBox "Welcome to database!"
Else
MsgBox "Sorry. No database."
End If
strSQL = "Insert Into ded_limit_analysis (PDPD_ID,PDDS_DESC,PRODUCT_CAT,BASE_PDPD_ID,PROD_CYCLE,HMO_IND_DED,HMO_FAM_DED,HMO_DED_TO_OOP,HMO_IND_FAC_DED,HMO_FAM_FAC_DED,HMO_DED_PFX_RQD,INN_IND_DED,INN_FAM_DED,INN_DED_TO_OOP,OON_IND_DED,OON_FAM_DED,OON_DED_TO_OOP,INN_OON_DED_PFX_RQD,DED_CARRY_OVR,PLAN_TIER,INN_OON_DED_REL,HMO_IND_OOP,HMO_FAM_OOP,INN_IND_OOP,INN_FAM_OOP,OON_IND_OOP,OON_FAM_OOP,INN_OON_OOP_REL,RX_DED_AMT,RX_DED_TO_MED_DED,RX_DED_TO_OOP,LMT1_SERV,LMT1_TYPE,LMT1_VALUE,LMT1_NTWK,LMT2_SERV,LMT2_TYPE,LMT2_VALUE,LMT2_NTWK,LMT3_SERV,LMT3_TYPE,LMT3_VALUE,LMT3_NTWK,LMT4_SERV,LMT4_TYPE,LMT4_VALUE,LMT4_NTWK,LMT5_SERV,LMT5_TYPE,LMT5_VALUE,LMT5_NTWK,LMT6_SERV,LMT6_TYPE,LMT6_VALUE,LMT6_NTWK,LMT7_SERV,LMT7_TYPE,LMT7_VALUE,LMT7_NTWK,LMT8_SERV,LMT8_TYPE,LMT8_VALUE,LMT8_NTWK,HMO_LTLT_PFX_RQD,INN_LTLT_PFX_RQD,OON_LTLT_PFX_RQD) " _
& "select * " _
& "from [Ded-Limit-Analysis];"
con.Execute strSQL
con.Close
dbs.Close
End Sub
【问题讨论】:
-
任何人都可以分享一个示例,我将如何从 ms 访问表追加到 oracle 表???
-
我已经添加了另一个我迄今为止尝试过的代码。
-
这段代码是否在 Access 内部运行?如果是这样,那么我不明白你为什么要使用
OpenDatabase,而你可以只使用CurrentDb。 -
@GordThompson,那是因为我不太确定如何从 ms 访问表中选择所有列来执行插入到 oracle 表。如果您能纠正我的错误,那就太好了,谢谢
-
您是否有特殊原因要使用 ADODB 连接到 Oracle 数据库?如果您创建了一个 Access ODBC linked table 指向您的 Oracle 表,那么您可以通过
CurrentDb.Execute原样使用当前的INSERT INTO linked_tbl (...) SELECT * FROM access_tbl查询。