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

Commentaire renvoyer une valeur dans une cellule précise d'une t ab

5 réponses
Avatar
DM
Bonjour,

Tout d'abord merci pour vos réponses ici et là..... Forum très enrichissant..

J'ai un form ave un text box; je veux renvoyer la valeur de ce textbox dans
le champ No3 de la table "toto" à la ligne 5 (la cellule de coordonnées (3,
5)?

Je bricole avec INSERT INTO mais en vain....

Sauriez-vous?

Merci

5 réponses

Avatar
Argyronet
Bonjour,

Il serait judicieux de savoir si c’est un INSERT ou un UPDATE…
Un INSERT ajoute une ligne d’enregistrement donc pas à un endroit précis
comme vous le souhaitez !
Pour ce faire, il vous faut l’ID de l’enregistrement à mettre à jour sans
quoi ce n'est pas possible (Condition WHERE).
Voici comment procéder

Sub MettreAJour(ID As Variant, ContenuChamp As Variant)
Dim oRS As DAO.Recordset
Dim strIdentifiant As String

strIdentifiant = IIf(IsNumeric(ID), str(ID), Chr(34) & str(ID) & Chr(34))
Set oRS = CurrentDb.OpenRecordset("SELECT * FROM MaTable WHERE MonID = " &
strIdentifiant, 2)
With oRS
.Edit
.Fields("ChampNo3") = ContenuChamp
.update
.Close
End With
Set oRS = Nothing
End Sub

Et vous l’utilisez comme suit :
Sub TEST()
MettreAJour Me!Identifiant, Me!ValeurTextBox
End Sub

P.S. Vérifiez que vous avez bien une référence à DAO 3.6 dans les
références...

--
Argy
http://argyronet.developpez.com/

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient.
Si vous n´obtenez pas la réponse voulue, communiquez différemment



Bonjour,

Tout d'abord merci pour vos réponses ici et là..... Forum très enrichissant..

J'ai un form ave un text box; je veux renvoyer la valeur de ce textbox dans
le champ No3 de la table "toto" à la ligne 5 (la cellule de coordonnées (3,
5)?

Je bricole avec INSERT INTO mais en vain....

Sauriez-vous?

Merci


Avatar
Eric
Bonjour,

On n'est pas sous Excel là donc il te faut disposer d'un moyen
permettant d'identifier la ligne, ça devrait être l'identifiant de la
table normalement. A partir de là, faire une requête Update du genre :

Currentdb.Execute "Update toto Set champNumero3=" & me!Textbox1 & "
where idTable=" & Me!Identifiant ' pour du numérique

ou pour de l'alphanumérique:
Currentdb.Execute "Update toto Set champNumero3=" & chr(34) &
me!Textbox1 & chr(34) & " where idTable=" & chr(34) & Me!Identifiant &
chr(34)



Bonjour,

Tout d'abord merci pour vos réponses ici et là..... Forum très enrichissant..

J'ai un form ave un text box; je veux renvoyer la valeur de ce textbox dans
le champ No3 de la table "toto" à la ligne 5 (la cellule de coordonnées (3,
5)?

Je bricole avec INSERT INTO mais en vain....

Sauriez-vous?

Merci


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
DM
Merci, je comprends la logique, cependant pouvez-vous m'éclaircir sur :

strIdentifiant = IIf(IsNumeric(ID), str(ID), Chr(34) & str(ID) & Chr(34))
Que fait cette ligne?


Et
MettreAJour Me!Identifiant, Me!ValeurTextBox

A quoi correspond Me!Identifiant ?

La valeur de mon text box est en fait la valeur de la 2ème colonne d'une
zone de liste "Results"auquel cas
Me!ValeurTextBox devient Me!Results.Column(2) ????

Merci Argy

Avatar
Argyronet
Eh bien comme le précise d'une façon dérivée Eric, dans Excel, on sollicite
une cellule par le biais d'une ligne et d'une colonne. Dans une table, un
enregistrement est identifié par un champ unique sans doublon.
Par exemple, la table Clients :
IDCLient, Societe, Contact, Adresse, CP, Ville Tél, Mail, Fax, CreationLe

Ici, IDClient est un champ Compteur (1, 2, 3, 4...) qui s'incrémente de 1 à
chaque nouvelle entrée.
Pour trouver un client, j'écrirais:
"SELECT Societe FROM TBLClients WHERE IDCLient = " & 5 & ";"
Par contre, si l'IDCLient est un alphanumérique (CLI001, CLI002, CLI0032,
CLI004...) je dois alors poser des guillemets dans la condition WHERE:

"SELECT Societe FROM TBLClients WHERE IDCLient = " & Chr(34) & "CLI002" &
Chr(34) & ";"

Mon bloc IIf() de tout à l'heure affecte la variable strIdentifiant de
manière à,lui attribuer la bonne syntaxe selon que ID était Numéric ou String.

Même si l'on parle de colonne et de ligne dans un ListBox, ce dernier est
régi par une table et contient une colonne 0 qui représente l'identifiant de
la ligne.
Il est primordial que vous compreniez bien le concept d'une table, ce qu'est
une clé primaire, une relation, un type de champ... etc. Sans quoi vous allez
patauger sans cesse et perdre un temps précieux !

Là, vous avez compris ???
--
Argy
http://argyronet.developpez.com/

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient.
Si vous n´obtenez pas la réponse voulue, communiquez différemment



Merci, je comprends la logique, cependant pouvez-vous m'éclaircir sur :

strIdentifiant = IIf(IsNumeric(ID), str(ID), Chr(34) & str(ID) & Chr(34))
Que fait cette ligne?


Et
MettreAJour Me!Identifiant, Me!ValeurTextBox

A quoi correspond Me!Identifiant ?

La valeur de mon text box est en fait la valeur de la 2ème colonne d'une
zone de liste "Results"auquel cas
Me!ValeurTextBox devient Me!Results.Column(2) ????

Merci Argy



Avatar
DM
Oui merci pour votre clarté...