Requête avec plusieurs conditions where sous vba excel

abenj Messages postés 2 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 24 mars 2004 - 24 mars 2004 à 13:39
florantanplan Messages postés 76 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 8 septembre 2006 - 24 mars 2004 à 15:45
hello everybody

voilà mon problème j'ai un tableur excel et une base access (tout en 2002) la connexion se fait bien,les gestions d'erreur aucun pb sauf une: quand il y a des doublons je veux les enlever depuis excel... ça marche super quand il y a 1 conditions mais pas plusieurs...

voici mon code:

On Error GoTo GestionErreur

Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=G:\basedonnee.mdb;"
Set rs = New ADODB.Recordset
rs.Open "Planing", cn, adOpenKeyset, adLockOptimistic, adCmdTable

...

Exit Sub

GestionErreur:

Dim commanddelete As Command
Dim req As String
If Err.Number = -2147217887 Then
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=G:\basedonnee.mdb;"
req "delete * from Planing where Numversion'" & Sheets("calendrier des promotions").Range("N1") And "'Annee ='" & Sheets("calendrier des promotions").Range("O1") And "'Codepays ='" & Sheets("calendrier des promotions").Range("N" & r) & "'"

Set commanddelete = New Command
With commanddelete
.ActiveConnection = cn
.CommandText = req
.Execute
End With
Sheets("Liste des familles").Select
MsgBox "Doublons localisés et supprimés, veuillez recommencer l'exécussion!"
Else
MsgBox "Numéro d'erreur" & Err.Number & vbCrLf & vbCrLf & Err.Description
End If

End Sub

Il me dit qu'il y a une erreur d'exécution type 13 dans le "req"
j'ai tout essayé remplacer les ' par "" ou encore dans les Références mettre DAO 3. 6 avant l'ADO..... rien ni fait...
Si quelqu'un à la solution parmi les bosses du dev vb je suis preneur!!! merci!!!

?-)

1 réponse

florantanplan Messages postés 76 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 8 septembre 2006
24 mars 2004 à 15:45
Essaye ça:
req "delete * from Planing where Numversion '" & Sheets("calendrier des promotions").Range("N1") & "' And Annee ='" & Sheets("calendrier des promotions").Range("O1") & "' And Codepays = '" & Sheets("calendrier des promotions").Range("N" & r) & "'"

Je me suis contenté d'inclure tes "And" dans les guillemets et rajouté quelques "&" qui me semblaient manquer.
0
Rejoignez-nous