Affichage automatique des données
mohalesage
-
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
mon problème est comme suit:
- j'ai des données déjà saisies, à partir d'une fenêtre de saisie
- Ces données sont portées sur un Tableau
- Ce tableau est localisé dans une Base de donnée DB.mdb
sur une autre autre feuille, j'ai trois zones de texte
Zone n° 1 : Matricule
Zone n° 2 : Nom
Zone n° 3 : Prénom
mon objectif est de :
une fois le matricule est saisi, le Nom et le Prénom s'affiche automatiquement et respectivement, chacun sur sa zone.
je tente est je re tente sans résultat
je travaille sur VB6, et Microsoft Access 2003, avec la librairie ADO
si vous pourriez m'aider à écrire le code adéquat, je vous en serai reconnaissant.
Merci d'avance
mon problème est comme suit:
- j'ai des données déjà saisies, à partir d'une fenêtre de saisie
- Ces données sont portées sur un Tableau
- Ce tableau est localisé dans une Base de donnée DB.mdb
sur une autre autre feuille, j'ai trois zones de texte
Zone n° 1 : Matricule
Zone n° 2 : Nom
Zone n° 3 : Prénom
mon objectif est de :
une fois le matricule est saisi, le Nom et le Prénom s'affiche automatiquement et respectivement, chacun sur sa zone.
je tente est je re tente sans résultat
je travaille sur VB6, et Microsoft Access 2003, avec la librairie ADO
si vous pourriez m'aider à écrire le code adéquat, je vous en serai reconnaissant.
Merci d'avance
7 réponses
-
Bonjour,
un exemple de code, base 2007, mais pas de difference pour le principe.
une combobox pour le matricule et un certain nombre de textebox pour les infos
https://www.cjoint.com/?CDgkqOIrSKH
Bonne suite -
Bonjour,
Je suis toujours bloqué sur ce point. Je continue à ne pas réussir de faire afficher
le NOM dans sa zone, le PRENOM dans la sienne
sachant que :
dans la base des données BD.mdb , le Matricule, le Nom et le Prénom sont déjà enregistrés
ce que je tente est de faire afficher le Nom et le Prénom dans leurs zones respectives, une fois le numéro du matricule est sélectionné sur le comboText
mes objets sont :
cmbMatricule
TNom
TPrenom
la liaison avec la base des données se fait par :
SQLs="select * from table"
la BD est localisée sur Access 2003
Provider=" Microsoft.Jet.OLEDB.4.0"
Merci pour votre aide -
Bonjour,
Avez-vous regarde le code de ce que j'ai mis a dispo????? Normalement vous n'avez qu'a copier en adaptant vos infos et champs. La connexion est un peu differente, mais sans plus.
A+ -
Merci pour votre attention, le lien que vous m'aviez indiqué m'a inspiré.
J'ai enfin réussi mes tentatives merci une autre fois.
Voilà ce que j'avais fais
A l'intérieur de l'objet ComboBox ( cmbMatricule) j'ai écris le code suivant :
Private Sub cmbMatricule_KeyPress(KeyAscii As Integer) Dim n Dim x Dim z z = CLng(cmbMatricule) SQLs = " select * from TableauInfo where MATRICULE='" & CLng(cmbMatricule) & "'" If RS.State = adStateOpen Then RS.Close RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic If KeyAscii = 13 Then If RS.EOF And RS.BOF Then MsgBox "Ce numéro existe déjà", vbCritical + vbMsgBoxRight, "Erreur" Else RS.MoveFirst For x = 0 To n TCin = RS![CIN] TNom = RS![NOM] TPrenom = RS![PRENOM] Next End If RS.Close End If End Sub
Sur la feuille au moment du chargementPrivate Sub Form_Load() Do Until RS.EOF cmbMatricule.AddItem (RS![MATRICULE]) RS.MoveNext Loop End Sub
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,
Ceci aurait ete un peu mieux, par contre quelques questions:
Private Sub Form_Load() 'RS est rempli comment???????? 'en general il vaut mieux faire une requete avec un order by ' pour avoir un tri croissant ou decroissant des donnees Do Until RS.EOF cmbMatricule.AddItem (RS![MATRICULE]) RS.MoveNext Loop End Sub Private Sub cmbMatricule_KeyPress(KeyAscii As Integer) Dim n '?????????? pas initialise par la suite Dim x Dim z z = CLng(cmbMatricule) SQLs = " select * from TableauInfo where MATRICULE='" & CLng(cmbMatricule) & "'" If RS.State = adStateOpen Then RS.Close RS.Open SQLs, Db, adOpenKeyset, adLockPessimistic 'peut-etre rajouter le controle de la longueur du matricule If KeyAscii = 13 Then If RS.EOF And RS.BOF Then 'recordset vide 'MsgBox "Ce numéro existe déjà", vbCritical + vbMsgBoxRight, "Erreur" MsgBox "Ce numéro n'existe PAS", vbCritical + vbMsgBoxRight, "Erreur" Else RS.MoveFirst 'pourquoi une boucle si matricule unique????? 'For x = 0 To n TCin = RS![CIN] TNom = RS![NOM] TPrenom = RS![PRENOM] 'Next End If RS.Close End If End Sub
Bonne suite -
Bonjour L'ami,
Concernant votre première remarque,
le RS. est rempli par la phrase SQLs suivante :Private Sub Form_Load() PoolConnection SQLs = "select * from TableauInfo" If RS.State = adStateOpen Then RS.Close RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic Do Until RS.EOF cmbMatricule.AddItem (RS![MATRICULE]) RS.MoveNext Loop End Sub
Pour le tri par ordre croissant, j'ai sélectionné la valeur True de la propriété Sorted
de l'objet cmbMatricule.
Pour la boucle For x=0 to n
c'est vrai, j'en ai pas besoin.
comme ça la Dim x et la Dim n n'ont plus besoin à être
Merci pour votre aide. Je ne vous cache pas. Je ne suis qu'un passionné du Visual Basic, je n'ai aucune formation informatique.
Ceci dit,
Ce soir je tente de réussir la différence entre deux zone d'heures
Sur la cmbHEntreeMatin : j'ai une heure
sur la cmbHSortieMatin : j'ai une autre heure
Sur le TTotalHMatin : je dois avoir le nombre d'heures ( c'est à dire la différence entre cmbHSortieMatin et cmbHEntreeMatin )
Merci pour vos suggestions
A + -
Bonjour,
Tout simplement:
ex:
Private Sub Command1_Click()
Dim x As Date
x = CDate(Textbox2) - CDate(Textbox1)
Command1.Caption = x
End Sub
Bonne suite