Affichage automatique des données

mohalesage -  
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

7 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    0
  2. mohalesage Messages postés 162 Statut Membre 1
     
    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
    0
  3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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+
    0
  4. mohalesage Messages postés 162 Statut Membre 1
     
    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 chargement

    Private Sub Form_Load()
    
    
    Do Until RS.EOF
    cmbMatricule.AddItem (RS![MATRICULE])
    RS.MoveNext
    Loop
    
    End Sub
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    0
  7. mohalesage Messages postés 162 Statut Membre 1
     
    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 +
    0
  8. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Tout simplement:

    ex:

    Private Sub Command1_Click()
    Dim x As Date
    x = CDate(Textbox2) - CDate(Textbox1)

    Command1.Caption = x
    End Sub


    Bonne suite
    0