excel表格的宏编程,提示错误438 在线等
Dim SQLUserName, SQLPassWord, SQLServer, SQLDataBase, MDCLogname, MDCPassword
Dim conn, rs, ConnStr, re_sql
Dim i, a
Dim TARGET_START(2000), TARGET_STOP(2000), COMPANY_NAME(2000), JOB_NUMBER(2000), JOB_NAME(2000), PART_NUMBER(2000), ACTUAL_QTY(2000), PART_TYPE_NAME(2000)
Const APPMDC = 1
Dim x
Private Sub CommandButton1_Click()
SQLUserName = "sa"
SQLPassWord = "gallop"
SQLServer = "127.0.0.1"
SQLDataBase = "MDC"
MDCLogname = "gallop"
MDCPassword = "gallop"
i = 2
x = 0
Do
TARGET_START(x) = ActiveSheet.cell(i, 1) '预计开始时间
TARGET_STOP(x) = ActiveSheet.cell(i, 2) '预计结束时间
COMPANY_NAME(x) = ActiveSheet.cell(i, 3) '公司
JOB_NUMBER(x) = ActiveSheet(i, 4) & ActiveSheet(i, 5) '工单编号
JOB_NAME(x) = ActiveSheet(i, 6) '工单名
PART_NUMBER(x) = ActiveSheet(i, 7) '零件号
ACTUAL_QTY(x) = ActiveSheet(i, 8) '零件完成的实际数量
PART_TYPE_NAME(x) = ActiveSheet(i, 10) '零件类型
Call FoundJobOpPart
i = i + 1
x = x + 1
Loop Until ActiveSheet.Cells(i, 1).Text = ""
MsgBox "数据导入成功!"
End Sub
Sub FoundJobOpPart()
Dim JobID, PART_PER_JOB_ID, PART_ID, CUSTOMER_ID, PART_TYPE_ID
Dim udtError, udtlogon, udtCustomer, udtPartType, udtPart, udtJob
Dim s_Date
Set udtError = CreateObject("PSFCAPI.CPErrorObj")
Set udtlogon = CreateObject("PSFCAPI.CLogonObj")
Set udtCustomer = CreateObject("PMDCAPI.CCustomerObj")
Set udtPartType = CreateObject("PMDCAPI.CPartTypeObj")
Set udtPart = CreateObject("PMDCAPI.CPartObj")
Set udtJob = CreateObject("PMDCAPI.CJobObj")
If (udtlogon.LogOnSQLServer(SQLUserName, SQLPassWord, SQLServer, SQLDataBase, MDCLogname, MDCPassword, APPMDC, udtError) = False) Then
MsgBox udtError.ErrorDescription
udtError.ClearError
Exit Sub
Else
If (udtCustomer.GetCustomerIDFromCompanyNameVBS(udtlogon, udtError, COMPANY_NAME(x), lCustomerID) = False) Then
Call udtCustomer.NewCustomerVBS(udtlogon, udtError, lCustomerID, COMPANY_NAME(x)) '输入新的客户
End If
If (udtPartType.GetPartTypeIDFromNameVBS(udtlogon, udtError, PART_TYPE_NAME(x), lPartTypeID) = False) Then '输入新的零件类型
Call udtPartType.NewPartTypeVBS(udtlogon, udtError, lPartTypeID, PART_TYPE_NAME(x))
End If
If (udtPart.GetPartIDFromNumberVBS(udtlogon, udtError, PART_NUMBER(x), lPartID) = False) Then '输入新的零件号
Call udtPart.NewPartVBS(udtlogon, udtError, lPartID, lPartTypeID, PART_NUMBER(x), "A")
End If
If (udtPart.GetPartIDFromNumberVBS(udtlogon, udtError, JOB_NUMBER(x), lPartID) = False) Then '输入新的工单号
Call udtPart.NewPartVBS(udtlogon, udtError, lJobID, JOB_NUMBER(x), TARGET_START(x), TARGET_STOP(x), lPartID, JOB_NAME(x))
End If
End If
Call udtlogon.LogOff(udtError)
Set udtError = Nothing
Set udtlogon = Nothing
Set udtMDC = Nothing
Set udtJob = Nothing
Set udtPart = Nothing
Set udtOp = Nothing
End Sub
代码如上
[解决办法]
关于EXCEL代码,可以自行先录制宏,然后将其代码复制下来改写即可。