[]
Nombre de membres 1 membre
Connectés : ( personne )
 

La Charte du Forum - La Charte du Forum

Forum - Forum
Problèmes Access des débutants - Problèmes Access des débutants


clos par 3Stone le 10/02/2011 : 17:50  Sujet n° 412  Extraction de chaine dans champ text

le 22/10/2010 : 09:42
par Marc

Anonyme

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
 sujet clos  Haut

[]   

DébutPrécédent [ 1 2 3 ] SuivantFin
Réponse n° 1
--------
le 26/10/2010 : 00:40
par 3Stone

Anonyme

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)
  clos par 3Stone le 10/02/2011 : 17:50  Haut
Réponse n° 2
--------
le 26/10/2010 : 11:14
par Marc

Anonyme

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

  clos par 3Stone le 10/02/2011 : 17:50  Haut
Réponse n° 3
--------
le 26/10/2010 : 16:17
par 3Stone

Anonyme

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... d

 
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 d

Cordialement,
Pierre(3stone)
  clos par 3Stone le 10/02/2011 : 17:50  Haut
Réponse n° 4
--------
le 26/10/2010 : 17:16
par Marc

Anonyme

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

  clos par 3Stone le 10/02/2011 : 17:50  Haut
Réponse n° 5
--------
le 26/10/2010 : 18:52
par 3Stone

Anonyme

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 wink

 
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)
  clos par 3Stone le 10/02/2011 : 17:50  Haut
Réponse n° 6
--------
le 27/10/2010 : 14:56
par Marc

Anonyme

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

  clos par 3Stone le 10/02/2011 : 17:50  Haut
Réponse n° 7
--------
le 27/10/2010 : 16:41
par 3Stone

Anonyme

Administrateur

Bonjour,

 
Citation :

voici le code recopié et modifié

 
Ben non d


Citation : 3stone

Lorsque tu scanne/saisi le "code" tu connais alors sa valeur, disons vCode.

 

Encore faut-il remplacer vCode par le bon identifiant que tu récupères après avoir scanné, et qui, normalement, équivaut à la clé primaire de l'enregistrement recherché.

Cordialement,
Pierre(3stone)
  clos par 3Stone le 10/02/2011 : 17:50  Haut
Réponse n° 8
--------
le 27/10/2010 : 17:25
par Marc

Anonyme

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

  clos par 3Stone le 10/02/2011 : 17:50  Haut
DébutPrécédent [ 1 2 3 ] SuivantFin
actif sujet actif   clos sujet clos   Important! Important!   Nouveau Nouveau message   -   Rectifier Rectifier message   Clôturer Clôturer sujet   Remonter Remonter
[]
Catégories de discussion  Forum 



Haut