Supprimer un enregistrement avec EXCEL VBA
Bonjour à tous,
je pilote des bases ACCESS avec EXCEL VBA et avec ma procédure (SQL) je n'arrive pas à supprimer mon enregistrement.
voici mon code, merci de me dire ce qui ne va pas...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| Sub SuppAffaireDetail()
Dim Cnt As ADODB.Connection, Rst As ADODB.Recordset, MySQL As String
Dim LaCo As String, LaDate As Date, LaRess As String, LeTemps As Date, Heure As Date
Dim LeClient As String, Lentite As String, LePoste As String, LeService As String
LaCo = CorrectJour.ListBox1.List(CorrectJour.ListBox1.ListIndex, 0)
LaDate = CDate(CorrectJour.ListBox1.List(CorrectJour.ListBox1.ListIndex, 1))
LaRess = CorrectJour.ListBox1.List(CorrectJour.ListBox1.ListIndex, 2)
'LeTemps = CDate(CorrectJour.ListBox1.List(CorrectJour.ListBox1.ListIndex, 3))
Heure = CDate(CorrectJour.ListBox1.List(CorrectJour.ListBox1.ListIndex, 4))
'LeClient = CorrectJour.ListBox1.List(CorrectJour.ListBox1.ListIndex, 5)
'Lentite = CorrectJour.ListBox1.List(CorrectJour.ListBox1.ListIndex, 6)
'LePoste = CorrectJour.ListBox1.List(CorrectJour.ListBox1.ListIndex, 7)
'LeService = CorrectJour.ListBox1.List(CorrectJour.ListBox1.ListIndex, 8)
LaDate = Format(LaDate, "yyyy-mm-dd") '=============================Format date ACCES date du jour de travail
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set Cnt = New ADODB.Connection '..................................................On fixe la variable.....
Set Rst = New ADODB.Recordset '...................................................On fixe la variable.....
Cnt.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & URL_BASE & ";" '......On ouvre la connection à la base.....
'----------Suppression dans la base Affaires_Details----------
MySQL = "DELETE FROM Affaires_Details " & _
"WHERE (Affaires_Details.N°_CO='" & LaCo & "') AND (Affaires_Details.Date_Fab=#" & LaDate & "#) AND (Affaires_Details.Ressources='" & LaRess & "') AND (Affaires_Details.Heure_Saisie=#" & Heure & "#) "
Rst.Open MySQL, Cnt, adOpenStatic
Set Rst = Nothing
'----------Suppression dans la base Paniers----------
'If LaCo = "TG023" Then
'Set Rst = New ADODB.Recordset '...............................................On fixe la variable.....
'MySQL = "DELETE FROM Paniers " & _
'"WHERE (Paniers.Panier_Ress='" & LaRess & "') AND (Paniers.Panier_Date=#" & LaDate & "#) "
'Rst.Open MySQL, Cnt, adOpenStatic
'Set Rst = Nothing
'End If
Cnt.Close
Set Cnt = Nothing
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub |
@+ et merci.
Supprimer un enregistrement avec EXCEL VBA
Bonjour Galoir,
Malheureusement cela ne fonctionne pas, de plus dans toutes mes procédures (SQL) il faut absolument que le format Date soit sous forme "yyyy-mm-dd"
cela fonctionne très bien pour les enregistrements ainsi que pour les requêtes de vérifications des journées de travail, il ne me reste plus que les suppressions :(
Faut-il que je précise les champs utilisés après l'instruction "DELETE" ?
@+ merci pour vos conseils...
Supprimer un enregistrement avec EXCEL VBA
Re bonjour
Merci pour le coup de main, cela semble fonctionné, bien que LaDate soit toujours As Date; j'ai incorporé dans la chaine SQL "...Format(LaDate, "yyyy-mm-dd")..." comme vous me l'avez spécifié et par contre supprimer plus haut
la ligne : LaDate = Format(LaDate, "yyyy-mm-dd").
je vais faire des essais avec : Dim LaDate As String.
@+....:cool:
Supprimer un enregistrement avec EXCEL VBA
Re Bonjour,
Cela fonctionne même avec: Dim LaDate As String ;)
Je suis pointu avec EXCEL mais je fais mes premières armes avec ACCESS, il me semblait qu'il fallait dimensionner la variable en Date pour la requête, dans ma base le champ "Date_Fab" est paramétré en date/Heure
alors pourquoi avec cette requête en "DELETE" il faut une variable de type String en sachant que pour mes autres requêtes en "SELECT" le format Date fonctionne :?
@+...
Supprimer un enregistrement avec EXCEL VBA
Bonsoir Galoir, le Forum,
merci encore une fois, j'ai pu résoudre tous mes soucis avec les requêtes Date et écart de Date, j'avance dans mon projet...
@+ :D