从Excel导出到AccessDB,错误参数类型错误,超出可接受范围或彼此冲突

时间:2017-04-04 10:24:12

标签: excel vba excel-vba ms-access ado

我尝试将一些数据从excel导出到我的访问数据库,但是在第15行rs.open我得到错误参数类型错误,超出可接受的范围,或者彼此冲突。我似乎无法弄清楚这里出了什么问题。任何帮助将不胜感激,谢谢!

Public Sub updateAntibiotics(abName As String, Optional startDate As Date, Optional stopDate As Date)
    Dim cn As Object, rs As Object
    Dim currPath As String, DbPath As String
    Dim sProduct As String, sVariety As String, cPrice As Variant
    Dim patientID As Integer

    ' connect to the Access database
    currPath = Application.ActiveWorkbook.Path
    DbPath = Left$(currPath, InStrRev(currPath, "\")) & "IZ Damiaan.accdb"
    Set cn = CreateObject("ADODB.Connection")
    cn.Open "Provider=Microsoft.Ace.OLEDB.12.0;Data Source='" & DbPath & "';"

    ' open a recordset
    Set rs = CreateObject("ADODB.Recordset")
    rs.Open "Antibiotics", cn, adOpenKeyset, adLockOptimistic, adCmdTable

    patientID = Val(Sheets("PatientData").Range("A2"))

        rs.Filter = "fkPatientID='" & patientID & "' AND Antibiotic='" & abName & "' AND stopDate IS NULL"
        If rs.EOF Then
            Debug.Print "No existing record - adding new..."
            rs.Filter = ""
            rs.AddNew
            rs("fkPatientID").Value = patientID
            rs("Antibiotic").Value = abName
        Else
            Debug.Print "Existing record found..."
        End If
        If Not IsNull(startDate) Then rs("startDate").Value = startDate
        If Not IsNull(stopDate) Then rs("stopDate").Value = stopDate
        rs.Update
        Debug.Print "...record update complete."

    rs.Close
    Set rs = Nothing
    cn.Close
    Set cn = Nothing
End Sub

0 个答案:

没有答案