{Access} Utilisation de requete Update sous vb
Résolu
jph71390
-
moiced59 Messages postés 1145 Date d'inscription Statut Membre Dernière intervention -
moiced59 Messages postés 1145 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis sur access que depuis une semaine et je suis sur un petit projet et je suis confronter a une difficulté de puis 2 jours. je dispose d'une table prêt ( à trois champ : id-prêt, id-utilisateur, id-tiers, montant et date) et d'un formulaire qui me permet de modifier ces différents champs.
Donc je voulais au départ faire une liste déroulante de recherche qui affiche les différents champ l utilisateur choisi l'un d'eux, cette liste retourne l' id-prêt, sa j y suis arriver. A
Après sus mon formulaire j ai 4 autres champs qui me permettent de rentrer les nouvelles valeurs pour id-utilisateur, id-tiers, montant et date et la je voudrais que l 'utilisateur n'est plus qu'a appuyer sur le bouton modifier pour que les champ soit automatiquement modifier et c la que je tourne en rond.
voici mes différentes tentatives :
1)
Dim req As String
Dim rs As Recordset
Dim mabase As Database
Set mabase = CurrentDb()
' Exécution de la requête
req = "Update PRÊT Set PRÊT.IDENTIFIANT_TIERS = '" & txtNomTier & "', PRÊT.IDENTIFIANT_UTILISATEUR = '" & ValeurNumUtilisateur & "', PRÊT.MONTANT_PRÊT = '" & txtMontantAvoir & "', PRÊT.DATE_PRÊT = '" & txtDateAvoir & "' Where PRÊT.IDENTIFIANT_PRÊT = '" & txtNumAvoir & "'"
Set rs = mabase.OpenRecordset(req)
2)
Dim sdl As String
Dim rs As DAO.Recordset
sql = "Update PRÊT Set PRÊT.IDENTIFIANT_TIERS = '" & txtNomTier & "', PRÊT.IDENTIFIANT_UTILISATEUR = '" & ValeurNumUtilisateur & "', PRÊT.MONTANT_PRÊT = '" & txtMontantAvoir & "', PRÊT.DATE_PRÊT = '" & txtDateAvoir & "' Where PRÊT.IDENTIFIANT_PRÊT = '" & txtNumAvoir & "';"
Set rs = CurrentDb.OpenRecordset(sql)
3)
Set db = CurrentDb
Set req = db.OpenRecordset("PRÊT")
req.Edit
req("IDENTIFIANT_TIERS") = txtNomTier
req("IDENTIFIANT_UTILISATEUR") = ValeurNumUtilisateur
req("MONTANT_PRÊT") = txtMontantAvoir
req("DATE_PRÊT") = txtDateAvoir
req.Update
req.Close
Avec cette dernière méthode j'arrive a faire un mise jour mais sur la première ligne de ma table je n'arrive pas a lui dire d'aller à l'id-prêt qui retourné par la liste de recherche
Cordialement merci de votre aide
jph
Je suis sur access que depuis une semaine et je suis sur un petit projet et je suis confronter a une difficulté de puis 2 jours. je dispose d'une table prêt ( à trois champ : id-prêt, id-utilisateur, id-tiers, montant et date) et d'un formulaire qui me permet de modifier ces différents champs.
Donc je voulais au départ faire une liste déroulante de recherche qui affiche les différents champ l utilisateur choisi l'un d'eux, cette liste retourne l' id-prêt, sa j y suis arriver. A
Après sus mon formulaire j ai 4 autres champs qui me permettent de rentrer les nouvelles valeurs pour id-utilisateur, id-tiers, montant et date et la je voudrais que l 'utilisateur n'est plus qu'a appuyer sur le bouton modifier pour que les champ soit automatiquement modifier et c la que je tourne en rond.
voici mes différentes tentatives :
1)
Dim req As String
Dim rs As Recordset
Dim mabase As Database
Set mabase = CurrentDb()
' Exécution de la requête
req = "Update PRÊT Set PRÊT.IDENTIFIANT_TIERS = '" & txtNomTier & "', PRÊT.IDENTIFIANT_UTILISATEUR = '" & ValeurNumUtilisateur & "', PRÊT.MONTANT_PRÊT = '" & txtMontantAvoir & "', PRÊT.DATE_PRÊT = '" & txtDateAvoir & "' Where PRÊT.IDENTIFIANT_PRÊT = '" & txtNumAvoir & "'"
Set rs = mabase.OpenRecordset(req)
2)
Dim sdl As String
Dim rs As DAO.Recordset
sql = "Update PRÊT Set PRÊT.IDENTIFIANT_TIERS = '" & txtNomTier & "', PRÊT.IDENTIFIANT_UTILISATEUR = '" & ValeurNumUtilisateur & "', PRÊT.MONTANT_PRÊT = '" & txtMontantAvoir & "', PRÊT.DATE_PRÊT = '" & txtDateAvoir & "' Where PRÊT.IDENTIFIANT_PRÊT = '" & txtNumAvoir & "';"
Set rs = CurrentDb.OpenRecordset(sql)
3)
Set db = CurrentDb
Set req = db.OpenRecordset("PRÊT")
req.Edit
req("IDENTIFIANT_TIERS") = txtNomTier
req("IDENTIFIANT_UTILISATEUR") = ValeurNumUtilisateur
req("MONTANT_PRÊT") = txtMontantAvoir
req("DATE_PRÊT") = txtDateAvoir
req.Update
req.Close
Avec cette dernière méthode j'arrive a faire un mise jour mais sur la première ligne de ma table je n'arrive pas a lui dire d'aller à l'id-prêt qui retourné par la liste de recherche
Cordialement merci de votre aide
jph
A voir également:
- Access vba update recordset
- Windows update bloqué - Guide
- Winget update - Guide
- Asus live update - Télécharger - Utilitaires
- Wsus offline update - Télécharger - Systèmes d'exploitation
- Nettoyage windows update - Guide
13 réponses
Salut
Je connais pas Access, mais je peux te garantir que tes requêtes update ne te renvoient pas un recordset (il y a donc peu de chances qu'OpenRecordset arrive à faire exécuter un update).
il doit exister une instruction genre ExecuteCommand pour faire executer tes requetes update.
Je connais pas Access, mais je peux te garantir que tes requêtes update ne te renvoient pas un recordset (il y a donc peu de chances qu'OpenRecordset arrive à faire exécuter un update).
il doit exister une instruction genre ExecuteCommand pour faire executer tes requetes update.
Salut,
ok j'essayerai ceci vers midi car la je suis pas sur mon pc et je n'ai pas accès a mon fichier je vous tient au courant et merci encore
++
ok j'essayerai ceci vers midi car la je suis pas sur mon pc et je n'ai pas accès a mon fichier je vous tient au courant et merci encore
++
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut je viens tester avec ceci et voici ce que j obtiens
Dim sdl As String
sql = "Update PRÊT Set PRÊT.IDENTIFIANT_TIERS = '" & txtNomTier & "', PRÊT.IDENTIFIANT_UTILISATEUR = '" & ValeurNumUtilisateur & "', PRÊT.MONTANT_PRÊT = '" & txtMontantAvoir & "', PRÊT.DATE_PRÊT = '" & txtDateAvoir & "' Where PRÊT.IDENTIFIANT_PRÊT = '" & txtNumAvoir & "';"
DoCmd.RunSQL (sql)
et il m a mit une erreur qui est :
type de de donnée incompatible dans l'expression du critère
Voila désoler mais je ne comprend pas quelqu'un peut m'aider s'il vous plait merci
++
Dim sdl As String
sql = "Update PRÊT Set PRÊT.IDENTIFIANT_TIERS = '" & txtNomTier & "', PRÊT.IDENTIFIANT_UTILISATEUR = '" & ValeurNumUtilisateur & "', PRÊT.MONTANT_PRÊT = '" & txtMontantAvoir & "', PRÊT.DATE_PRÊT = '" & txtDateAvoir & "' Where PRÊT.IDENTIFIANT_PRÊT = '" & txtNumAvoir & "';"
DoCmd.RunSQL (sql)
et il m a mit une erreur qui est :
type de de donnée incompatible dans l'expression du critère
Voila désoler mais je ne comprend pas quelqu'un peut m'aider s'il vous plait merci
++
deja ton dim né pas bon:
dim sql as string
sql = "Update PRÊT Set PRÊT.IDENTIFIANT_TIERS = [txtNomTier], PRÊT.IDENTIFIANT_UTILISATEUR =ValeurNumUtilisateur , PRÊT.MONTANT_PRÊT =txtMontantAvoir, PRÊT.DATE_PRÊT = txtDateAvoir Where PRÊT.IDENTIFIANT_PRÊT = txtNumAvoir"
essai ca voir
je comprend pas pourquoi tu concatenne tout tu execute ta requete depuis vb dc je suppose que tu l'execute depuis un bouton situé sur le formulaire dc pas besoin de concatenner peur etre il faudra les mettre entre [ ]
dim sql as string
sql = "Update PRÊT Set PRÊT.IDENTIFIANT_TIERS = [txtNomTier], PRÊT.IDENTIFIANT_UTILISATEUR =ValeurNumUtilisateur , PRÊT.MONTANT_PRÊT =txtMontantAvoir, PRÊT.DATE_PRÊT = txtDateAvoir Where PRÊT.IDENTIFIANT_PRÊT = txtNumAvoir"
essai ca voir
je comprend pas pourquoi tu concatenne tout tu execute ta requete depuis vb dc je suppose que tu l'execute depuis un bouton situé sur le formulaire dc pas besoin de concatenner peur etre il faudra les mettre entre [ ]
Lu,
oui désoler j aurai du préciser que tout ce qui txt...... sont des champ present sur mon formulaire et ValeurNumUtilisateur est une variable global contenant mon id-utilisateur car pour accéder a ce formulaire il faut s authentifier et je garde le numéro ds cette variable, blux.
Je vais essayer tout de suite cette syntaxe merci moiced59
++
oui désoler j aurai du préciser que tout ce qui txt...... sont des champ present sur mon formulaire et ValeurNumUtilisateur est une variable global contenant mon id-utilisateur car pour accéder a ce formulaire il faut s authentifier et je garde le numéro ds cette variable, blux.
Je vais essayer tout de suite cette syntaxe merci moiced59
++
Re alors c super sa marche merci beaucoup dim sql as string
sql = "Update PRÊT Set PRÊT.IDENTIFIANT_TIERS = [txtNomTier], PRÊT.IDENTIFIANT_UTILISATEUR =ValeurNumUtilisateur , PRÊT.MONTANT_PRÊT =txtMontantAvoir, PRÊT.DATE_PRÊT = txtDateAvoir Where PRÊT.IDENTIFIANT_PRÊT = txtNumAvoir"
par contre jute une petite dernière chose pourrait tu m expliquer ou me donner l adresse d'un tuto qui explique comment fonctionne exactement pourquoi on doit mettre des crochets ou rien ou guillemet et dans quel cas aussi ^^ et aussi c'est comment enlever le message d alerte qui apparait : " Vous allez mettre à jour une ligne(s). dès que vous cliquerez sur oui, il vous sera impossible de ......"
encore merci
++
sql = "Update PRÊT Set PRÊT.IDENTIFIANT_TIERS = [txtNomTier], PRÊT.IDENTIFIANT_UTILISATEUR =ValeurNumUtilisateur , PRÊT.MONTANT_PRÊT =txtMontantAvoir, PRÊT.DATE_PRÊT = txtDateAvoir Where PRÊT.IDENTIFIANT_PRÊT = txtNumAvoir"
par contre jute une petite dernière chose pourrait tu m expliquer ou me donner l adresse d'un tuto qui explique comment fonctionne exactement pourquoi on doit mettre des crochets ou rien ou guillemet et dans quel cas aussi ^^ et aussi c'est comment enlever le message d alerte qui apparait : " Vous allez mettre à jour une ligne(s). dès que vous cliquerez sur oui, il vous sera impossible de ......"
encore merci
++
On met des [] lorsque l'on fait référence à un nom qui a un blanc à l'intérieur, afin d'éviter qu'access ne croie que c'est un séparateur...
[champ 1] et non champ 1
On met entre quote (l'apostrophe simple, touche 4 du clavier) les données qui sont de type chaine. Les numériques n'ont pas besoin de cela, et pour les dates, il faut mettre des # au début et à la fin...
[champ 1] et non champ 1
On met entre quote (l'apostrophe simple, touche 4 du clavier) les données qui sont de type chaine. Les numériques n'ont pas besoin de cela, et pour les dates, il faut mettre des # au début et à la fin...
SELECT * FROM [table 1] WHERE champ1 = 'toto' AND [champ suivant] = 12 AND champ_date = #01/01/2010#;
alors des crochets: reference a un champ du formulaire
rien : reference a une variable
"" : concatenne du texte brut exemple select * from personne where nom = pierre !!! where nom = "pierre"
supprimer message d'alerte :
au debut du code vb:
docmd.setwarnings false
a la fin du code
docmd.setwarnings true
voila
rien : reference a une variable
"" : concatenne du texte brut exemple select * from personne where nom = pierre !!! where nom = "pierre"
supprimer message d'alerte :
au debut du code vb:
docmd.setwarnings false
a la fin du code
docmd.setwarnings true
voila
OK merci beaucoup de ton aide
je te souhaite de passé de bonen fête de fin d 'année et une bonne journée et merci encore
++
je te souhaite de passé de bonen fête de fin d 'année et une bonne journée et merci encore
++