1 membre
Connectés : ( personne )
- La Charte du Forum - Forum - Problèmes Access des débutants
Sujet n° 412 |
Extraction de chaine dans champ text |
le 22/10/2010 : 09:42 par Marc
visiteur |
Bonjour,Je suis entrain de faire un test sur la façon de pouvoir gérer des boites de films vierge pour le cinéma avec leur barrecodeDans la chaine du barrecode,il y-a à un endroi toujour la même valeur,donc que j'extrais par la fonction MID et qui fait référence surune base articles ce qui me permet d'afficher d'autre valeurs dans les différents champs ,ceci dans une liste déroulante ce qui m'oblige a cliquer dessus pourafficher le résultat ,donc comment ,peut-on afficher cette valeur unique dans un champ texte uniquementmerci pour votre réponseMarc |
|
|
Réponse n° 1 -------- le 26/10/2010 : 00:40 par 3Stone
Administrateur
|
Bonjour,
Citation :ceci dans une liste déroulante ce qui m'oblige a cliquer dessus pour afficher le résultat
Clique "dessus" ? sur quoi, la liste ?
Citation :donc comment ,peut-on afficher cette valeur unique dans un champ texte uniquement
[La zone de texte] = La_valeur
Mais la question est pour le moins peu claire...
Cordialement, Pierre(3stone) |
|
|
Réponse n° 2 -------- le 26/10/2010 : 11:14 par Marc
visiteur |
Bonjour,
je vais essayer de faire plus clair, désolé
J'ai une T_articles ,qui contients les champs (code,catal,codetech,sensibilité,métrage,format)
J'ai un T_commandes , qui contients les champs (barrecode,code,catal,codetech,sensibilité,métrage,format)
j'ai un F_détail , qui reprend les champs de la T_commandes
L'orsque je scanne le barrecode dans le F_détail le champ code(liste déroulante) reste vide si je ne clique pas sur la fléche pour
choisir la valeur,si je clique pas de pb tous les autres champs s'affichent aussi.
Je souhaiterais faire ça en une seule opération je scanne et tout s'affiche c'est à dire que le champ code ne soit pas en liste déroulante
car en champ text indépendant,la proprieté (origine source)elle n'y est pas
merci pour votre réponse
Marc |
|
|
Réponse n° 3 -------- le 26/10/2010 : 16:17 par 3Stone
Administrateur
|
Bonjour,
Citation :
J'ai une T_articles ,qui contients les champs (code,catal,codetech,sensibilité,métrage,format)
J'ai un T_commandes , qui contients les champs (barrecode,code,catal,codetech,sensibilité,métrage,format)
j'ai un F_détail , qui reprend les champs de la T_commandes
Ce qui ressemble à s'y méprendre à une erreur de conception, vu que les trois tables sont quasiment des copies conformes...
Citation :
L'orsque je scanne le barrecode dans le F_détail le champ code(liste déroulante) reste vide si je ne clique pas sur la fléche pour choisir la valeur
Oui, mais dans ce cas, cela voudrais dire que ta liste est un liste indépendante, comme une simple liste de recherche... Si tel est le cas, c'est que la liste n'a pas de "source contrôle" (control source) et n'est pas reliée à un champ.Par ailleurs, je ne vois pas l'utilité d'une liste à cet endroit
Cordialement,
Pierre(3stone) |
|
|
Réponse n° 4 -------- le 26/10/2010 : 17:16 par Marc
visiteur |
bonsoir,
la T_articles sert uniquement de référence ,c'est elle qui contient les valeurs a afficher dans la T_commande,
Quand au champ code du formulaire si je tape la valeur a la main qui elle est connue dans la T_articles ça m'affiche bien les autres champs ,ce que je voudrais faire c'est scanner dans le champ barrecode ,que le champ code se remplisse automatiquement et qu'il me remonte les valeurs des autre champs depuis la T_articles
Marc |
|
|
Réponse n° 5 -------- le 26/10/2010 : 18:52 par 3Stone
Administrateur
|
Bonsoir, Citation :la T_articles sert uniquement de référence ,c'est elle qui contient les valeurs a afficher dans la T_commande
Oui, mais c'est ce que l'on appelle des redondances... On déroge uniquement pour les valeurs qu'il faut "fixer", comme le prix d'un article dans une table "détails facture" (qui peut évoluer dans le temps). En règle générale, on ne récupère que l'identifiant de l'enregistrement concerné... les autres informations ne sont que recopie, ce qui est absolument à éviter. Ceci pour le pourquoi du comment
Citation :ce que je voudrais faire c'est scanner dans le champ barrecode
Je crois que je me répète, mais il faut oblier que l'on scanne. Cela équivaut à une saisie.
que le
champ code se remplisse automatiquement et qu'il me remonte les valeurs
des autre champs depuis la T_articles
Il faut donc que ton formulaire fonctionne correctement, de façon normale, lorsque tu sélectionnes un enregistrement. Si c'est pour récupérer un valeur ou deux, tu peux utiliser la fonction de domaine DLookup(). Sinon, il faudra utiliser une requête qui récupère les champs de la table et en sélectionnant le code qui va bien. Dans ton cas, ce sera à faire en VBA.
Un exemple! Lorsque tu scanne/saisi le "code" tu connais alors sa valeur, disons vCode.
Sur "après mise à jour" du champ dans lequel tu scanne, tu mets:
Code :Dim Db As Dao.Database Dim Rs as Dao.Recordset Set Db = CurrentDb Set Rs = Db.OpenRecordset ("Select * From T_Articles Where Code=" & vCode) '/ ici j'affiche pour l'exemple MsgBox Rs!champ1 & vbCrLf & Rs!champ2 & vbCrLf & Rs!champ3 '/ toi, tu attribue à tes champs... Rs.Close Db.Close Set Rs = Nothing Set Db = Nothing
Bien sûr, il faut adapter les noms de champs...
Cordialement, Pierre(3stone) |
|
|
Réponse n° 6 -------- le 27/10/2010 : 14:56 par Marc
visiteur |
bonjour,
voici le code recopié et modifié
Private Sub Code_AfterUpdate() Dim Db As DAO.Database Dim Rs As DAO.Recordset Set Db = CurrentDb Set Rs = Db.OpenRecordset("Select * From T_Articles Where Code=" & vCode) '/ ici j'affiche pour l'exemple MsgBox Rs!Catalogue & vbCrLf & Rs!Codetech & vbCrLf & Rs!Métrage & vbCrLf & Rs!Format '/ toi, tu attribue à tes champs... Rs.Close Db.Close Set Rs = Nothing Set Db = Nothing
End Sub
,mais les valeurs des champs de cette ligne ne s'affichent pas
MsgBox Rs!Catalogue & vbCrLf & Rs!Codetech & vbCrLf & Rs!Métrage & vbCrLf & Rs!Format
merci pour votre aide
Marc
|
|
|
Réponse n° 8 -------- le 27/10/2010 : 17:25 par Marc
visiteur |
bonsoir,
Je ne suis plus a une bourde prés , j'ai modifié cette ligne ,mais sans succes
Set Rs = Db.OpenRecordset("Select * From T_Articles Where Code=" & Code)
le champ code est la clé primaire de la T_articles
Je voulais juste vous préciser que je ne connait pas le VB
Marc |
|
|
sujet actif
sujet clos
Important!
Nouveau message -
Rectifier message
Clôturer sujet
Remonter
|