IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

[VB6] Remplir et MAJ de tables Access 97 avec Data Control


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Février 2008
    Messages : 154
    Par défaut [VB6] Remplir et MAJ de tables Access 97 avec Data Control
    Bonjour à tous,

    je veux corriger un code qui ne fonctionne pas;

    la maj de la table, il y a un bouton nouveau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Private Sub CmdNouveau_Click()
    On Error Resume Next ' NPE
        VMessage = "Etes-vous sûr de vouloir saisir les données d'un nouveau personnel?"
        VTitre = "Nouveau"
        VStyle = vbYesNo + vbQuestion + vbDefaultButton2
        VRéponse = MsgBox(VMessage, VStyle, VTitre)
     
        If VRéponse = vbYes Then
     
              DataMAJPerso.Recordset.AddNew
     
           ListeTitres = "M."
           TxtNomPerso = "XXXXXXXXXX"
           TxtPrénomsPerso = "YYYYYYYYYY"
           ListeDateEmbauchePerso = Date
           ListeSituationMatrimoniale = "Célibataire"
           ListeSexePerso = "Masculin"
     
           TxtNomPhoto = "\\server\Photo\PhotoNonDisponible.bmp"
    ''       PicPhotoPerso.Picture = LoadPicture(TxtNomPhoto)
     
           TxtAgePerso = ""
           TxtAfficherNombreEnfants = ""
           TxtExpérienceProfessionnelle = ""
     
     
           TxtMatriculePerso.SetFocus
     End If
     
    End Sub
    et on valide ou modifie avec le bouton actualiser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub CmdActualiser_Click()
    DataMAJPerso.Refresh
    AfficherGrilleFamille
    End Sub
    bon, avec ça, ça ne marche pas!
    j'ai essayé de modifier le bouton actualiser en faisant ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub CmdActualiser_Click()
    DataMAJPerso.Recordset.Addnew
    DataMAJPerso!MatriculePerso = TxtMatriculePerso
    DataMAJPerso!NomPerso = TxtNomPerso
    ...
    DataMAJPerso.Recordset.Update
    DataMAJPerso.Refresh
    'AfficherGrilleFamille
    End Sub
    mais il me met des erreur de compilation:3426 ou " ne peut enregistrer dans une proprieté vide" ou encore "methode non reconnue"

    franchement, je ne comprends vraiment les erreurs qu'il m'affiche (je suis encore debutante en vb6) ;

    pas beaucoup de resultat sur data control sur google!!

    aidez moi svp!
    merci

  2. #2
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    Déjà, on peut dire que le DataMAJPerso.Recordset.AddNew
    dans la procèdure CmdNouveau_Click ne sert à rien car il est annulé par le DataMAJPerso.Recordset.Addnew dans la procèdure CmdActualiser_Click

    Ensuite il faut nous dire sur quelle ligne la compilation s'arrête.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Février 2008
    Messages : 154
    Par défaut
    alors pour le premier jeu:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    Private Sub CmdNouveau_Click()
     'On Error Resume Next ' NPE
        VMessage = "Etes-vous sûr de vouloir saisir les données d'un nouveau personnel?"
        VTitre = "Nouveau"
        VStyle = vbYesNo + vbQuestion + vbDefaultButton2
        VRéponse = MsgBox(VMessage, VStyle, VTitre)
     
        If VRéponse = vbYes Then
           DataMAJPerso.Recordset.AddNew
     
           ListeTitres = "M."
           TxtNomPerso = "XXXXXXXXXX"
           TxtPrénomsPerso = "YYYYYYYYYY"
           ListeDateEmbauchePerso = Date
           ListeSituationMatrimoniale = "Célibataire"
           ListeSexePerso = "Masculin"
         ......
     
           TxtAgePerso = ""
           TxtAfficherNombreEnfants = ""
           TxtExpérienceProfessionnelle = ""
     
     
           TxtMatriculePerso.SetFocus
        End If
     
    end sub
     
    ----------------------------------------------------
     
    Private Sub CmdActualiser_Click()
    DataMAJPerso.Refresh
    AfficherGrilleFamille
    End Sub
    pas d'erreur et pas d'enregistrement

    pour le deuxieme jeu de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    Private Sub CmdNouveau_Click()
     'On Error Resume Next ' NPE
        VMessage = "Etes-vous sûr de vouloir saisir les données d'un nouveau personnel?"
        VTitre = "Nouveau"
        VStyle = vbYesNo + vbQuestion + vbDefaultButton2
        VRéponse = MsgBox(VMessage, VStyle, VTitre)
        
        If VRéponse = vbYes Then
           DataMAJPerso.Recordset.AddNew
           
           ListeTitres = "M."
           TxtNomPerso = "XXXXXXXXXX"
           TxtPrénomsPerso = "YYYYYYYYYY"
           ListeDateEmbauchePerso = Date
           ListeSituationMatrimoniale = "Célibataire"
           ListeSexePerso = "Masculin"
         ......
           
           TxtAgePerso = ""
           TxtAfficherNombreEnfants = ""
           TxtExpérienceProfessionnelle = ""
    
           
           TxtMatriculePerso.SetFocus
        End If
    
    end sub
    
    ----------------------------------------------------
    
    Private Sub CmdActualiser_Click()
    DataMAJPerso.recordset.addnew
    DataMAJPerso.recordset.update
    DataMAJPerso.Refresh
    AfficherGrilleFamille
    End Sub
    erreur 3426: cette methode a ete annulée...
    pour le troisieme jeu de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Private Sub CmdNouveau_Click()
     'On Error Resume Next ' NPE
        VMessage = "Etes-vous sûr de vouloir saisir les données d'un nouveau personnel?"
        VTitre = "Nouveau"
        VStyle = vbYesNo + vbQuestion + vbDefaultButton2
        VRéponse = MsgBox(VMessage, VStyle, VTitre)
        
        If VRéponse = vbYes Then
           DataMAJPerso.Recordset.AddNew
           
           ListeTitres = "M."
           TxtNomPerso = "XXXXXXXXXX"
           TxtPrénomsPerso = "YYYYYYYYYY"
           ListeDateEmbauchePerso = Date
           ListeSituationMatrimoniale = "Célibataire"
           ListeSexePerso = "Masculin"
         ......
           
           TxtAgePerso = ""
           TxtAfficherNombreEnfants = ""
           TxtExpérienceProfessionnelle = ""
    
           
           TxtMatriculePerso.SetFocus
        End If
    
    end sub
    
    ----------------------------------------------------
    
    Private Sub CmdActualiser_Click()
    DataMAJPerso.recordset.addnew
    DataMAJPerso.Recordset!MatriculePerso = TxtMatriculePerso
    DataMAJPerso.Recordset!NomPerso = TxtNomPerso
    DataMAJPerso.recordset.update
    DataMAJPerso.Refresh
    AfficherGrilleFamille
    End Sub
    erreur de compilation Impossible d'affecter à une propriété en lecture seule.
    j'ai une liste longue de champ à renseigner dans la table personnel, comment faire?

  4. #4
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Bonjour
    pour le deuxieme jeu de code:
    Tu fais un addnew suivit d'un UpDate sens remplir de champs !
    Un addnew prepare un jeux d'enregistrement vide que tu dois renseigner, si un de tes champs doit obligatoirement contenir une donnée, il y aura forcement un déclenchement d'erreur.
    pour le troisieme jeu de code:
    il semblerait que tu tentes de remplir un champs qui est auto-incrémenté, surement une clef primaire.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Février 2008
    Messages : 154
    Par défaut
    oui c'est une clé primaire mais elle n'est pas auto incrementée, elle est de type texte.

    comment contourner cette erreur de compilation?

  6. #6
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Quelle valeurs a la propriétés ReadOnly de ton DataMAJPerso ?
    Pour ton utilisation il doit être absolument égal a False (valeur par défaut)
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

Discussions similaires

  1. Comment remplir cheklistbox par une table Access
    Par AnterPr dans le forum Composants VCL
    Réponses: 4
    Dernier message: 22/01/2013, 17h07
  2. Mise à jour liens tables Access attachées avec Delphi
    Par Nicoclem dans le forum Bases de données
    Réponses: 5
    Dernier message: 11/02/2009, 23h07
  3. [Tables Access] Problème avec AUTO_INCREMENT non reconnu
    Par GuixInDaMixx dans le forum VB.NET
    Réponses: 4
    Dernier message: 15/05/2008, 18h01
  4. Enregistrer table Access triée avec ADO
    Par fikou dans le forum VBA Access
    Réponses: 2
    Dernier message: 08/05/2006, 18h05
  5. [VB6]Problème dajout dans une Table Access à cause des group
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 01/02/2006, 10h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo