-1
votes

Comment supprimer un enregistrement SQL dans la base de données arrière, VBA, Access

Je voudrais supprimer tous les enregistrements dans le champ "Pathway" dans le client de la table figurant dans la base de données Backend (hors ligne).

Jusqu'à présent, j'ai ceci, mais cela ne fonctionne pas avec la déclaration de suppression xxx

ou xxx


3 commentaires

Ajout à la réponse que vous avez déjà: <> null n'est pas vraiment une comparaison valide. Utiliser n'est pas null à la place. <> NULL retourne toujours NULL car la comparaison contre NULL renvoie toujours NULL, faisant ainsi votre requête Supprimer aucun enregistrement.


Merci! Et que diriez-vous du chemin? Il me dit qu'il y a un problème avec la déclaration de la déclaration. Pourriez-vous identifier où est l'erreur, s'il vous plaît?


Deuxième tentative est proche de valide, seul dans est livré avant (donc déplacer ce à la fin) et retirez les parenthèses du clause.


3 Réponses :


0
votes

a Supprimer La requête supprime des lignes, pas des champs.

Vous devez utiliser une requête update qui met à jour la voie de champ.


2 commentaires

Salut, c'est précisément ce que je veux. Supprimer tous les enregistrements (lignes) dans le champ "PATHWAY". Celui-ci se trouve être dans une autre base de données. ;) Merci!


Les lignes (enregistrements) sont dans des tables. Les tables ont des colonnes (champs), votre déclaration n'a aucun sens. Voulez-vous supprimer toutes les lignes dans une table où les voies de terrain sont nuls?



0
votes

Je suppose que cela a fonctionné après tout:

Sub delpath()

Dim dbinputC As String

 dbinputC = "[" & Application.CurrentProject.Path & "\CUSTOMER.accdb" & "]"
 DoCmd.RunSQL "DELETE pathway FROM " & dbinputC & ".SPECPATH WHERE pathway Is Not Null;"

 End Sub


0 commentaires

1
votes
Private Sub Clear_Offline_Data(Share_Folder as String, File_Name as String, Table_Name as String, Column_Name As String)
Dim Connection_Path As String
Dim Source_Recset As Object
Dim Destination_Recset As Object

'Create Table To Network Data
   Set Destination_Recset = currentDB.CreateTableDef("Offline_Data_Table")
   Connection_Path = ";DATABASE=" & ShareFolder & "\" & File_Name
   Destination_Recset.Connect = Connection_Path
   Destination_Recset.SourceTableName = Table_Name

   currentDB.TableDefs.Append Destination_Recset
   currentDB.TableDefs.Refresh
'Create Temp_Data From Network Table
   Set Source_Recset = CurrentDB.CreateQueryDef("Clear_Data_Query")
   Source_Recset.SQL = CStr("Update Offline_Data_Table SET [Offline_Data_Table]." & Column_Name & " = NULL WHERE [Offline_Data_Table]." & Column_Name & " IS NOT Null" & ";")
   Source_Recset.Execute
   Source_Recset.Close
'Remove Table to network data 
   currentDB.TableDefs.Delete "Offline_Data_Table"
   currentDB.TableDefs.Refresh
'Remove Query
   currentDB.QueryDefs.Delete "Clear_Data_Query"
   currentDB.QueryDefs.Refresh
End Sub

1 commentaires

Merci, vous semble serviable, je vais certainement le tester!