VBA erreur de Syntaxe (opérateur absent) dans l'expression de requête 'PopID ='

Le code suivant génère une erreur lorsque vous tentez de l'exécuter, je présume que j'ai réussi à réellement se connecter à la base de données et j'ai une cellule sélectionné, de sorte que vous ne savez pas ce qui manque.

ERREUR:

Erreur de syntaxe (opérateur absent) dans l'expression de requête 'PopID ='.

Idéalement, je voudrais être en mesure d'énumérer les quatre cellules qui irait dans les quatre colonnes dans l'accès ajoutant chaque fois que la macro est lancée

Const TARGET_DB = "testdb.accdb"

Sub AlterOneRecord() 'not working yet

   Dim cnn As ADODB.Connection
   Dim rst As ADODB.Recordset
   Dim fld As ADODB.Field
   Dim MyConn
   Dim lngRow As Long
   Dim lngID As String
   Dim j As Long
   Dim sSQL As String

                   'determine the ID of the current record and define the SQL statement
                   lngRow = ActiveCell.Row
                   lngID = Cells(lngRow, 1).Value

   sSQL = "SELECT * FROM tblPopulation WHERE PopID = " & lngID

   Set cnn = New ADODB.Connection
   MyConn = ThisWorkbook.path & Application.PathSeparator & TARGET_DB

   With cnn
     .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;"
     .Open MyConn
   End With

   Set rst = New ADODB.Recordset
   rst.CursorLocation = adUseServer
   rst.Open Source:=sSQL, _
            ActiveConnection:=cnn, _
            CursorType:=adOpenKeyset, _
            LockType:=adLockOptimistic

   'Load contents of modified record from Excel to Access.
   'do not load the ID again.
   For j = 2 To 7
      rst(Cells(1, j).Value) = Cells(lngRow, j).Value
   Next j
   rst.Update

   ' Close the connection
   rst.Close
   cnn.Close
   Set rst = Nothing
   Set cnn = Nothing
End Sub

Je trouve ça étrange avec eux à la fois être M$ des produits que ce n'est pas bien documentée ou vraiment, vraiment facile à réaliser. Peut-être que je vais à ce sujet dans le mauvais sens.

Comment ai-je pu faire elle contient les cellules A1 et B2 par exemple?

InformationsquelleAutor user2341069 | 2013-08-13