Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA Ajouter données dans table si manquant

9 réponses
Avatar
Pat
Bonsoir,

Je cherche petit un bout de code qui me permette d'ajouter une donnée (du
texte) dans une table si ce texte ne s'y trouve pas déjà.

Actuellement je fait ça avec une requête mais jusse voulu le faire en VBA

Un bout de code du style:

Function AjoutDonnee()

Si MonTexte n'existe pas dans la table MaTable
Ajouter MonTexte dans la table MaTable

End Function

Merci à vous.

Pat

9 réponses

Avatar
Didier Bicking
Function AjoutTexte()
Dim Db as Database
Set Db=CurrentDB

Dim RS as Recordset
Set RsÛ.OpenRecordset("MaTable")

While Not RS.EOF
If isnull(RS!MonChamp) Or RS!Monchamp="" Then
RS.Edit
RS!Monchamp="Ceci est mon texte"
RS.Update
End If
RS.MoveNext
Wend
End Function

--
Bon courage

Didier Bicking

http://perso.wanadoo.fr/dbicking


"Pat" a écrit dans le message de news:
43a1fb2b$0$32164$
Bonsoir,

Je cherche petit un bout de code qui me permette d'ajouter une donnée (du
texte) dans une table si ce texte ne s'y trouve pas déjà.

Actuellement je fait ça avec une requête mais jusse voulu le faire en VBA

Un bout de code du style:

Function AjoutDonnee()

Si MonTexte n'existe pas dans la table MaTable
Ajouter MonTexte dans la table MaTable

End Function

Merci à vous.

Pat




Avatar
Buddy
Salut

essaies ça

If DCount("TonChamp", "TaTable", "TonChamp='" & TonTexte & "'") = 0 Then
DoCmd.RunSQL "INSERT INTO TaTable (TonChamp) VALUES ('" & Replace(TonTexte, "'", "''") & "');"
End If

Ouala
Bye
Buddy

"Pat" a écrit dans le message de news:
43a1fb2b$0$32164$
Bonsoir,

Je cherche petit un bout de code qui me permette d'ajouter une donnée (du texte) dans une table si
ce texte ne s'y trouve pas déjà.

Actuellement je fait ça avec une requête mais jusse voulu le faire en VBA

Un bout de code du style:

Function AjoutDonnee()

Si MonTexte n'existe pas dans la table MaTable
Ajouter MonTexte dans la table MaTable

End Function

Merci à vous.

Pat




Avatar
Pat
Merci à tous les deux, après avoir cherché toute la soirée sans succès,
pourtant j'étais pas loin, je me réveille et une solution sur le site grace
à vous.

Je vous souhaite une excellente journée.

Pat

"Buddy" a écrit dans le message de news:

Salut

essaies ça

If DCount("TonChamp", "TaTable", "TonChamp='" & TonTexte & "'") = 0 Then
DoCmd.RunSQL "INSERT INTO TaTable (TonChamp) VALUES ('" &
Replace(TonTexte, "'", "''") & "');"
End If

Ouala
Bye
Buddy

"Pat" a écrit dans le message de news:
43a1fb2b$0$32164$
Bonsoir,

Je cherche petit un bout de code qui me permette d'ajouter une donnée (du
texte) dans une table si ce texte ne s'y trouve pas déjà.

Actuellement je fait ça avec une requête mais jusse voulu le faire en VBA

Un bout de code du style:

Function AjoutDonnee()

Si MonTexte n'existe pas dans la table MaTable
Ajouter MonTexte dans la table MaTable

End Function

Merci à vous.

Pat








Avatar
Pat
Ben finalement ça fonctionne pas et je commence à comprendre pourquoi. Hier
j'étais arrivé à une solution proche de celle que me propose Buddy.

Sa solution fonctionne impec sauf que MonTexte est "Détail d'envoi" et à
cause de l'apostrophe ça plante. Problème de syntaxe mais j'ai essayé les "
' () rien n'y fait.

If DCount("MonChamp", "MaTable", "MonChamp='" & Détail d'envoi"& "'") = 0
Then
DoCmd.RunSQL "INSERT INTO MaTable (MonChamp) VALUES ('" & Replace(Détail
d'envoi, "'", "''") & "');"
End If


"Pat" a écrit dans le message de news:
43a27b25$0$10967$

Merci à tous les deux, après avoir cherché toute la soirée sans succès,
pourtant j'étais pas loin, je me réveille et une solution sur le site
grace à vous.

Je vous souhaite une excellente journée.

Pat

"Buddy" a écrit dans le message de news:

Salut

essaies ça

If DCount("TonChamp", "TaTable", "TonChamp='" & TonTexte & "'") = 0 Then
DoCmd.RunSQL "INSERT INTO TaTable (TonChamp) VALUES ('" &
Replace(TonTexte, "'", "''") & "');"
End If

Ouala
Bye
Buddy

"Pat" a écrit dans le message de news:
43a1fb2b$0$32164$
Bonsoir,

Je cherche petit un bout de code qui me permette d'ajouter une donnée
(du texte) dans une table si ce texte ne s'y trouve pas déjà.

Actuellement je fait ça avec une requête mais jusse voulu le faire en
VBA

Un bout de code du style:

Function AjoutDonnee()

Si MonTexte n'existe pas dans la table MaTable
Ajouter MonTexte dans la table MaTable

End Function

Merci à vous.

Pat












Avatar
Buddy
Resalut

Bon il faut adapter le petit bout de code pour que tout gaze

Par MonTexte j'entendais le nom de ta zone de texte de ton formulaire
cela donne si ta zone de texte s'appelle zdtMonTexte

If DCount("MonChamp", "MaTable", "MonChamp='" & zdtMonTexte & "'") = 0 Then
DoCmd.RunSQL "INSERT INTO MaTable (MonChamp) VALUES ('" & Replace(zdtMonTexte, "'", "''") &
"');"
End If

Ouala
Bye
Buddy

"Pat" a écrit dans le message de news:
43a28581$0$5804$

Ben finalement ça fonctionne pas et je commence à comprendre pourquoi. Hier j'étais arrivé à une
solution proche de celle que me propose Buddy.

Sa solution fonctionne impec sauf que MonTexte est "Détail d'envoi" et à cause de l'apostrophe ça
plante. Problème de syntaxe mais j'ai essayé les " ' () rien n'y fait.

If DCount("MonChamp", "MaTable", "MonChamp='" & Détail d'envoi"& "'") = 0 Then
DoCmd.RunSQL "INSERT INTO MaTable (MonChamp) VALUES ('" & Replace(Détail d'envoi, "'", "''") &
"');"
End If


"Pat" a écrit dans le message de news:
43a27b25$0$10967$

Merci à tous les deux, après avoir cherché toute la soirée sans succès, pourtant j'étais pas
loin, je me réveille et une solution sur le site grace à vous.

Je vous souhaite une excellente journée.

Pat

"Buddy" a écrit dans le message de news:

Salut

essaies ça

If DCount("TonChamp", "TaTable", "TonChamp='" & TonTexte & "'") = 0 Then
DoCmd.RunSQL "INSERT INTO TaTable (TonChamp) VALUES ('" & Replace(TonTexte, "'", "''") &
"');"
End If

Ouala
Bye
Buddy

"Pat" a écrit dans le message de news:
43a1fb2b$0$32164$
Bonsoir,

Je cherche petit un bout de code qui me permette d'ajouter une donnée (du texte) dans une table
si ce texte ne s'y trouve pas déjà.

Actuellement je fait ça avec une requête mais jusse voulu le faire en VBA

Un bout de code du style:

Function AjoutDonnee()

Si MonTexte n'existe pas dans la table MaTable
Ajouter MonTexte dans la table MaTable

End Function

Merci à vous.

Pat
















Avatar
Pat
Merci buddy,

Le problème est toujours la si je remplace zdtMonTexte par Détail d'envoi ça
plante sur l'apostrophe.

Voila le code modifié comme tu me l'as suggéré, mais il plante à cause de
l'apostrophe de d'envoi. J'ai bien esssayé les "'( mais....

Merci pour ta patience

Pat

If DCount("MonChamp", "MaTable", "MonChamp=" & Détail d'envoi & "'") = 0
Then
DoCmd.RunSQL "INSERT INTO MaTable (MonChamp) VALUES ('" & Replace(Détail
d'envoi, "'", "''") &"');"
End If

"Buddy" a écrit dans le message de news:

Resalut

Bon il faut adapter le petit bout de code pour que tout gaze

Par MonTexte j'entendais le nom de ta zone de texte de ton formulaire
cela donne si ta zone de texte s'appelle zdtMonTexte

If DCount("MonChamp", "MaTable", "MonChamp='" & zdtMonTexte & "'") = 0
Then
DoCmd.RunSQL "INSERT INTO MaTable (MonChamp) VALUES ('" &
Replace(zdtMonTexte, "'", "''") & "');"
End If

Ouala
Bye
Buddy

"Pat" a écrit dans le message de news:
43a28581$0$5804$

Ben finalement ça fonctionne pas et je commence à comprendre pourquoi.
Hier j'étais arrivé à une solution proche de celle que me propose Buddy.

Sa solution fonctionne impec sauf que MonTexte est "Détail d'envoi" et à
cause de l'apostrophe ça plante. Problème de syntaxe mais j'ai essayé les
" ' () rien n'y fait.

If DCount("MonChamp", "MaTable", "MonChamp='" & Détail d'envoi"& "'") = 0
Then
DoCmd.RunSQL "INSERT INTO MaTable (MonChamp) VALUES ('" &
Replace(Détail d'envoi, "'", "''") & "');"
End If


"Pat" a écrit dans le message de news:
43a27b25$0$10967$

Merci à tous les deux, après avoir cherché toute la soirée sans succès,
pourtant j'étais pas loin, je me réveille et une solution sur le site
grace à vous.

Je vous souhaite une excellente journée.

Pat

"Buddy" a écrit dans le message de news:

Salut

essaies ça

If DCount("TonChamp", "TaTable", "TonChamp='" & TonTexte & "'") = 0
Then
DoCmd.RunSQL "INSERT INTO TaTable (TonChamp) VALUES ('" &
Replace(TonTexte, "'", "''") & "');"
End If

Ouala
Bye
Buddy

"Pat" a écrit dans le message de news:
43a1fb2b$0$32164$
Bonsoir,

Je cherche petit un bout de code qui me permette d'ajouter une donnée
(du texte) dans une table si ce texte ne s'y trouve pas déjà.

Actuellement je fait ça avec une requête mais jusse voulu le faire en
VBA

Un bout de code du style:

Function AjoutDonnee()

Si MonTexte n'existe pas dans la table MaTable
Ajouter MonTexte dans la table MaTable

End Function

Merci à vous.

Pat




















Avatar
Pat
Encore merci Buddy pour ton aide, ça roule avec:

If DCount("MonChamp", "MaTable", "MonChamp='" & "Détail d'envoi" & "'") = 0
Then
DoCmd.RunSQL "INSERT INTO MaTable (MonChamp) VALUES ('" &
Replace("Détail d'envoi", "'", "''") & "');"
End If

Pat
Avatar
Buddy
Ah ok tu as mis un espace dans le nom de ton champ
soit tu appliques un principe fondamental : aucun espace dans aucun des nommages (controles, form,
tables, variables)
soit tu mets tes nom entre crochets []

If DCount("MonChamp", "MaTable", "MonChamp=" & [Détail d'envoi] & "'") = 0 Then
DoCmd.RunSQL "INSERT INTO MaTable (MonChamp) VALUES ('" & Replace([Détail d'envoi], "'", "''")
&"');"
End If


Ouala
Bye
Buddy

"Pat" a écrit dans le message de news:
43a28e5f$0$5721$
Merci buddy,

Le problème est toujours la si je remplace zdtMonTexte par Détail d'envoi ça plante sur
l'apostrophe.

Voila le code modifié comme tu me l'as suggéré, mais il plante à cause de l'apostrophe de d'envoi.
J'ai bien esssayé les "'( mais....

Merci pour ta patience

Pat

If DCount("MonChamp", "MaTable", "MonChamp=" & Détail d'envoi & "'") = 0 Then
DoCmd.RunSQL "INSERT INTO MaTable (MonChamp) VALUES ('" & Replace(Détail d'envoi, "'", "''")
&"');"
End If

"Buddy" a écrit dans le message de news:

Resalut

Bon il faut adapter le petit bout de code pour que tout gaze

Par MonTexte j'entendais le nom de ta zone de texte de ton formulaire
cela donne si ta zone de texte s'appelle zdtMonTexte

If DCount("MonChamp", "MaTable", "MonChamp='" & zdtMonTexte & "'") = 0 Then
DoCmd.RunSQL "INSERT INTO MaTable (MonChamp) VALUES ('" & Replace(zdtMonTexte, "'", "''") &
"');"
End If

Ouala
Bye
Buddy

"Pat" a écrit dans le message de news:
43a28581$0$5804$

Ben finalement ça fonctionne pas et je commence à comprendre pourquoi. Hier j'étais arrivé à une
solution proche de celle que me propose Buddy.

Sa solution fonctionne impec sauf que MonTexte est "Détail d'envoi" et à cause de l'apostrophe
ça plante. Problème de syntaxe mais j'ai essayé les " ' () rien n'y fait.

If DCount("MonChamp", "MaTable", "MonChamp='" & Détail d'envoi"& "'") = 0 Then
DoCmd.RunSQL "INSERT INTO MaTable (MonChamp) VALUES ('" & Replace(Détail d'envoi, "'", "''")
& "');"
End If


"Pat" a écrit dans le message de news:
43a27b25$0$10967$

Merci à tous les deux, après avoir cherché toute la soirée sans succès, pourtant j'étais pas
loin, je me réveille et une solution sur le site grace à vous.

Je vous souhaite une excellente journée.

Pat

"Buddy" a écrit dans le message de news:

Salut

essaies ça

If DCount("TonChamp", "TaTable", "TonChamp='" & TonTexte & "'") = 0 Then
DoCmd.RunSQL "INSERT INTO TaTable (TonChamp) VALUES ('" & Replace(TonTexte, "'", "''") &
"');"
End If

Ouala
Bye
Buddy

"Pat" a écrit dans le message de news:
43a1fb2b$0$32164$
Bonsoir,

Je cherche petit un bout de code qui me permette d'ajouter une donnée (du texte) dans une
table si ce texte ne s'y trouve pas déjà.

Actuellement je fait ça avec une requête mais jusse voulu le faire en VBA

Un bout de code du style:

Function AjoutDonnee()

Si MonTexte n'existe pas dans la table MaTable
Ajouter MonTexte dans la table MaTable

End Function

Merci à vous.

Pat
























Avatar
Pat
Les chochets, j'y avais pas pensé je modifie mon code en conséquence.

Merci et bonne journée.

Pat