'准备连接EXCEL数据库
Dim Conn As ADODB.Connection
Dim Res As ADODB.Recordset
Dim intExcelCount As Long
Dim Choosed As String
Choosed = xWorkSheet.Name
Set Conn = New ADODB.Connection
Dim strSQL As String
strSQL = "Provider=MicroSoft.Jet.OLEDB.4.0;Data Source=""" & xApp.ActiveWorkbook.Path & "\" & xApp.ActiveWorkbook.Name & """;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=0"""
Conn.Open strSQL
Debug.Print strSQL
If Err.Number <> 0 Then
MsgBox Err.Description
Err.Clear
Set Conn = Nothing
Exit Sub
End If
Dim xx As String
'xx = "Insert Into [odbc;" & DB_CONN & "].bm_DH_ERP_MaterialCode "
'xx = xx & " (MaterialCode,MaterialName,MaterialSpec,StartUseDate,UnitGroupName,UnitName)"
'xx = xx & " values "
'xx = xx & " ( Select 存货编码,存货名称,规格型号,启用日期,计量单位组名称,主计量单位名称 from [" & Choosed & "$] where logoutflag = 0)"
'xx = xx & " ( Select * from [" & strSQL & "].[" & Choosed & "$])"
'单独打开数据库查询,OK
'xx = "select * from [odbc;" & DB_CONN & "].bm_DH_ERP_MaterialCode"
'Debug.Print xx
'Conn.Execute xx
'If Conn.Errors.Count <> 0 Then
' MsgBox Conn.Errors(0).Description
' Err.Clear
'End If
'单独查询EXCEL表格,OK
'xx = "Select * from [" & Choosed & "$]"
'xx = "( Select [存货编码] as MaterialCode,[存货名称] as MaterialName,[规格型号] as MaterialSpec,[启用日期] as StartUseDate,[计量单位组名称] as UnitGroupName,[主计量单位名称] as UnitName from [" & Choosed & "$])"
'Conn.Execute xx
'If Conn.Errors.Count <> 0 Then
' MsgBox Conn.Errors(0).Description
' Err.Clear
'End If
xx = "Insert into [odbc;" & DB_CONN & "].bm_DH_ERP_MaterialCode"
xx = xx & "(MaterialCode,MaterialName,MaterialSpec,StartUseDate,UnitGroupName,UnitName)" & Chr(10) & Chr(13)
xx = xx & " ( Select [存货编码] as MaterialCode,[存货名称] as MaterialName,[规格型号] as MaterialSpec,[启用日期] as StartUseDate,[计量单位组名称] as UnitGroupName,[主计量单位名称] as UnitName from [" & Choosed & "$] as a" & Chr(10) & Chr(13)
xx = xx & " Where a.MaterialCode not in (Select MaterialCode from [odbc;" & DB_CONN & "].bm_DH_ERP_MaterialCode ) )"
Debug.Print xx
Conn.Execute xx
If Conn.Errors.Count <> 0 Then
MsgBox Conn.Errors(0).Description
Err.Clear
End If
在执行插入语句时,报出 ”INSERT INTO 语句的语法错误“。
------解决思路----------------------
Insert into 后跟的是表名称
[odbc;" & DB_CONN & "].bm_DH_ERP_MaterialCode 这玩意是数据库中的表名称么,