从Excel导入访问

我有一些VBA代码的麻烦,应该将Excel数据导入到我的访问数据库。 当我运行代码,我得到一个运行时错误“运行时错误1004应用程序定义或对象定义的错误”。

With wks 'arrêter l'importation lorsque l'on rencontre une case vide While .Range(A & i).Value <> "" '(où pKeyCol représente la colonne et i la ligne) If (cnt = 10) Then 'pour éviter les messages lors de l'ajout des enregistrements DoCmd.SetWarnings False End If 'condition de remplissage de la table => eviter les doublons 'si l'enregistrement existe déjà dans la table destination, 'on passe à la ligne suivante sans l'importer If DCount("*", acTable, pKey & " LIKE '" & .Range(A & i).Value & "'") = 0 Then 'requête SQL (ajouter autant de champs que nécessaire) cSQL = "INSERT INTO " & acTable & " ( [champ1], [champ2], [champ3], [champ5], [champ6], [champ11],[champ14], [champ15], [champ18],[champ20], [champ21], [champ22],[champ23], [champ24]) VALUES (" & Chr(34) & .Range("A" & i) & Chr(34) & "," & Chr(34) & .Range("F" & i) & Chr(34) & "," & Chr(34) & .Range("AI" & i) & Chr(34) & "," & Chr(34) & .Range("X" & i) & Chr(34) & ", " & Chr(34) & .Range("H" & i) & Chr(34) & "," & Chr(34) & .Range("K" & i) & Chr(34) & "," & Chr(34) & .Range("R" & i) & Chr(34) & "," & Chr(34) & .Range("S" & i) & Chr(34) & "," & Chr(34) & .Range("AC" & i) & Chr(34) & "," & Chr(34) & .Range("AD" & i) & Chr(34) & "," & Chr(34) & .Range("AE" & i) & Chr(34) & "," & Chr(34) & .Range("AF" & i) & Chr(34) & "," & Chr(34) & .Range("AG" & i) & Chr(34) & "," & Chr(34) & .Range("AH" & i) & Chr(34) & ");" 'exemple avec les colonnes E et G 'exécute la requète DoCmd.RunSQL cSQL End If 'on incrémente la variable i pour passer à la ligne suivante i = i + 1 cnt = cnt + 1 Wend End With 

我认为这是负责的部分。 我认为这个问题可能是因为在cSQL =部分的冠军。 我在法国的环境下部分编码。 所以这可能是问题。

除非A是一个variables,那么它应该是:

 .Range("A" & i) 

例如变成.Range("A1")

如果i最初是0,那么这将产生错误。

acTable是预先存在的Access枚举的名称,因此不能用作variables名称(标识符)。 这是一个string,所以我会使用strTablestrTable