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

Access Discussion :

Problèmes de liaison entre table et formulaire(sql et/ou vb)


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2013
    Messages
    51
    Détails du profil
    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2013
    Messages : 51
    Points : 27
    Points
    27
    Par défaut Problèmes de liaison entre table et formulaire(sql et/ou vb)
    Bonjour chers collègues,
    ce que je demande est un peu compliqué certes, mais je demande quand même.(Extrait en pièces jointes)
    En fait je suis en stage, et là mon chef m'a demandé de lui faire une base de données pour générer
    automatiquement ses bons de livraison et chrono de livraison sous Access 2007.
    Cependant je n'ai jamais travaillé sur Access 2007.
    Là j'ai mis en place mes tables et formulaires que mon boss a validé.
    Maintenant mon problème est:
    1- de pouvoir remplir automatiquement ma base de données selon les saisies des formulaire
    2-D'afficher les saisies sur un champ de zone de saisies pour d’éventuelles modification et mis à jour.
    3-de générer un document Word à la fin de la saisie de toutes les infos que l'utilisateur choisira.
    Je me suis démerdé une semaine en essayant des requêtes sql,mais il me retourne toujours
    des erreurs et je n'ai jamais codé en vb. C'est les requêtes vb qui me posent problème.
    Si quelqu’un peut m'aider ou me montrer seulement le chemin je lui serais reconnaissant.
    Ps: je peut envoyer la base ou une partie pour plus d’éclaircissement.
    Cordialement
    Fichiers attachés Fichiers attachés

  2. #2
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut
    Bonjour

    1- de pouvoir remplir automatiquement ma base de données selon les saisies des formulaire
    2-D'afficher les saisies sur un champ de zone de saisies pour d’éventuelles modification et mis à jour.
    Tes points un et deux ne nécessitent pas de VBA. Tu dois juste créer des formulaires en renseignant dans la propriété "Source" du formulaire avec le nom de la table (ou de requête) qui lui correspond et en t'assurant que chaque contrôle est bien associé à un champ de la table par la propriété "Source contrôle" du contrôle.

  3. #3
    Nouveau membre du Club
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2013
    Messages
    51
    Détails du profil
    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2013
    Messages : 51
    Points : 27
    Points
    27
    Par défaut
    Ben j'essaie ce que tu me dis mais j'ai des zones de saisie par défaut, qu'on ne peut modifier lors de la création d'un nouvel élément(module).
    Sinon j'ai mal fait les expressions, mais je ne le crois pas.
    Pour le moment je suis toujours au même, mais je continue de bidouiller quand même!!.

  4. #4
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut
    Tu peux mettre ta BDD en pièce jointe ici ?

  5. #5
    Nouveau membre du Club
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2013
    Messages
    51
    Détails du profil
    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2013
    Messages : 51
    Points : 27
    Points
    27
    Par défaut
    OK c'est fait.
    Certains boutons (comme les boutons Retour ou Entrer) marchent déjà.
    Mais maintenant pour créer un nouveau module par exemple et l'enregistrer, je suis bloqué.
    Un cas bien expliqué ou résolu me suffit pour continuer.

    Cordialement
    Fichiers attachés Fichiers attachés

  6. #6
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut
    C'est difficile de savoir ou tu veux en venir.

    Bon prenons ta table MODULE, effectivement. Ouvres ton formulaire 1B_24M en mode Création.

    Fais y ce que je t'ai dit au début : dans la propriété du formulaire (Feuille de propriétés, Type de sélection : Formulaire) "Source" (la première), met le nom de la table "MODULE". Il est dans la liste.

    Ensuite dans les trois contrôles au dessus du bouton créer, dans la propriété du contrôle (Feuille de propriétés, Type de sélection : Zone de texte) "Source contrôle", met le nom de champ correspondant (NOM1, DESCRIPTION1, TYPE1). Les noms sont dans la liste.

    Ensuite ouvre en mode formulaire regarde ce qui se passe : tu peux créer, modifier, supprimer sans aucun bouton, comme dans une table.

    Ça colle ou je n'ai rien compris ?

  7. #7
    Nouveau membre du Club
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2013
    Messages
    51
    Détails du profil
    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2013
    Messages : 51
    Points : 27
    Points
    27
    Par défaut
    En fait mumen ce que tu m'as dit ça marche.
    Mais tu as raison c'est difficile de savoir ce que je veux. En fait l'idée(tjrs sur 1B_24M) c'est:
    1-Si je sélectionne dans la liste déroulante à droite un nom de module(j'ai utilisé NOM1 comme propriété), je veux que tous les champs(Nom, Description, Type) de cette ligne dans la table module sélectionnée s'affichent dans la zone de texte qui est juste en bas du bouton 'Créer'.
    2-En appuyant sur le bouton 'Créer' l’utilisateur crée automatiquement un nouveau module si et seulement si il a saisi un 'nom de module','une description' et sélectionner' un type.
    Pour le moment je n'arrive à gérer ces 2 cas.
    Et merci d'avance pour ton temps précieux que tu me consacres.
    Cordialement.

  8. #8
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut
    Bonjour, jaraf

    Simplifie ton approche : réécris tes formulaires en fonction de ce que te donne Access. En l'occurrence, si tu veux être certain que l'utilisateur a bien rempli les trois champs du Module, alors modifie la table Module et met dans chaque champ la propriété "Null interdit" à Oui. Cela résoudra ton problème sans que tu n'aies rien d'autre à faire.

    Profites en pour étudier un peu plus les propriétés des tables et des champs. Ensuite, tu peux essayer de faire des formulaires avec les assistants. C'est efficace. Ensuite, reviens avec tes questions.

  9. #9
    Nouveau membre du Club
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2013
    Messages
    51
    Détails du profil
    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2013
    Messages : 51
    Points : 27
    Points
    27
    Par défaut
    Oui ça c'est déjà fait.
    Donc je vais me consacrer sur 'comment "y arriver avec vba.
    Je ne crois que je peux changer mes tables car je dois respecter un cahier de charges avec des besoins techniques spécifiées.
    Mais merci quand même je vais me débrouiller entre temps.
    Merci encore.
    Cordialement

  10. #10
    Nouveau membre du Club
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2013
    Messages
    51
    Détails du profil
    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2013
    Messages : 51
    Points : 27
    Points
    27
    Par défaut
    Je veux m'essayer sur vba pour créer un nouveau module.
    Il me renvoie erreur sur objet alors qu je ne vois d'erreur.
    Si quelqu'un a une idée precise:
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    Private Sub BoutonCreerSCLM_Click()
    On Error GoTo Erreur
     
        If IsNull(CreatenomModsclm) Then
          MsgBox ("Saisissez le nom du module !")
          CreatenomModsclm.SetFocus
          Exit Sub
        End If
     
        If IsNull(CreatenomDescrpsclm) Then
          MsgBox ("Saisissez la description du module!")
          CreatenomDescrpsclm.SetFocus
          Exit Sub
        End If
     
         If IsNull(SelectTypesclm) Then
          MsgBox ("Selectionner le type du module!")
          SelectTypesclm.SetFocus
          Exit Sub
        End If
     
        Dim rst As Recordset
        Set rst = TMA_BD.OpenRecordset("Module", dbOpenDynaset)
        With rst
            .FindFirst "CreatenomModsclm = '" & CreatenomModsclm & "' AND (SelectTypesclm <> '" & TMA_BD.TYPE1 & "'  OR CreatenomModsclm <> '" & TMA_BD.NOM1 & "')"
            If Not .NoMatch Then
                MsgBox ("Ce nom du service existe déjà  + !SelectTypesclm   + !CreatenomModsclm ")
                .Close
                CreatenomModsclm.SetFocus
                Exit Sub
            End If
        End With
     
        Set rst = TMA_DB.db.OpenRecordset("Module", dbOpenDynaset)
        With rst
            .FindFirst "CreatenomModsclm  = '" & TMA_BD.NOM1 & "' CreatenomDescrpsclm = '" & TMA_BD.DESCRIPTION1 & "' SelectTypesclm = '" & TMA_BD.TYPE1 & "'"
            .Edit
            If IsNull(CreatenomModsclm) Then
                !CreatenomModsclm = ""
            Else
                !NOM1 = CreatenomModsclm
            End If
            If IsNull(CreateDescriptionsclm) Then
                !CreatenomDescrpsclm = ""
            Else
                !DESCRIPTION1 = CreatenomDescrpsclm
            End If
            If IsNull(SelectTypesclm) Then
                !SelectTypesclm = ""
            Else
                !TYPE1 = SelectTypesclm
            End If
     
            .Update
            .Close
        End With
     
        'enregistrement de la creation dans le journal
        Set rst = TMA_DB.OpenRecordset("Module", dbOpenDynaset)
        With rst
            .AddNew
            !CreatenomModsclm = NOM1
            !CreatenomDescrpsclm = DESCRIPTION1
            !SelectTypesclm = TYPE1
     
           .Update
            .Close
        End With
     Set rst = Nothing
        DoCmd.Close
     
        Exit Sub
        rst.Close
    Erreur:
          MsgBox Err.Number & vbCrLf & Err.Description, vbInformation, "Erreur"
     
    End Sub

  11. #11
    Nouveau membre du Club
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2013
    Messages
    51
    Détails du profil
    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2013
    Messages : 51
    Points : 27
    Points
    27
    Par défaut
    Bonjour j'ai réussi à faire marcher mes boutons créer et supprimer.
    Maintenant je voudrais savoir quel est le meilleur moyen de faire une recherche multicritère sur un bon de livraison. y aura au moins 2 tables différents qui seront sollicités.C e que je me demande c'est :
    1-Est ce que je dois créer des requetes sql?
    2-Ou si je dois utiliser directement les fonctionnalités d'Access? si oui comment croiser plusieurs tables sur une même recherche.
    Merci d'avance

Discussions similaires

  1. liaison entre tables et formulaire
    Par ioanina dans le forum IHM
    Réponses: 3
    Dernier message: 01/09/2013, 20h13
  2. [AC-2003] Problème de liaison entre tables
    Par panpulilu dans le forum Modélisation
    Réponses: 2
    Dernier message: 08/04/2009, 19h21
  3. Editer liaison entre table avec Formulaire
    Par Thaumas dans le forum Access
    Réponses: 1
    Dernier message: 24/03/2009, 23h27
  4. [Access 2003]Problème de liaison entre table
    Par steeves5 dans le forum Access
    Réponses: 3
    Dernier message: 12/06/2006, 09h40
  5. Problèmes de liaisons entre tables ...
    Par Mangun dans le forum Access
    Réponses: 2
    Dernier message: 28/09/2005, 11h35

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