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

VBA Access Discussion :

Mettre automatiquement un focus apres un evenement de flashage [AC-2003]


Sujet :

VBA Access

  1. #61
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    Bonjour madefemre,
    Comme dis hier, j'aimerais améliorer la saisie des données au niveau du transfert des lignes des listes box : liste Liste_ArriveeQuai vers Liste_MiseAquai.

    Lors du transfert , j'ai 4 inputbox qui s'affichent l'un aprés l'autre :
    le premier demande l'heure de mise à quai
    le deuxième demande le numero de quai
    le troisième demande le nombre de colis
    le quatrième et dernière demande l 'immatriculation

    Je souhaiterais, que ces 4 inputbox ne s'affichent plus les uns aprés les autres mais tous en même temps dans une sorte d'encadrement.
    Et c'est dans cette encadrement, que l'on referencerait l'heure de mise à quai; le numero de quai, le nombre de colis et enfin l'immatriculation.
    On ne toucherait pas aux conditions en cas de fausse manip.
    Par contre, j'aimerais , que le bouton annuler de cette encadrement permet d'annuler le tranfert de la ligne ( cas où la personne se rend compte qu'il s'est trompé de ligne au moment ou il commence à réferencer les inputbox)

    Actuellement, lorsque le 1er inputbox (heure de mise à quai) s'affiche, je suis contraint de mettre une heure. Je ne peux pas annuler l'enregistrement. Si je clic sur "annuler" , j'ai mon message box qui s'affiche "La valeur saisie n'est pas une heure" ,"Veuillez recommencer la saisie".
    Au niveau du 2ième inputbox, le clic sur "annuler" ne met pas un terme au transfert de la ligne mais me fait passer à l'inputbox suivant
    Même chose pour le 3 ieme inputbox.
    Et au niveau du 4ième inputbox, lorsque je clic sur "annuler", le tranfert final s'opere.

    Pour palier à cette problèmatique, j'ai crée un condition qui dit que si je n'inscrit rien dans l'inputbox, alors la réponse est -2
    Ce n'est pas terrible mais bon c'est tout ce que j'ai pu trouvé..

    Ci dessous , la procédure où sont inseré les inputbox
    tu as aussi les fonctions appélées par les inputbox

    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
    Private Sub ArriveeMiseAQuai_Click()
    Dim valNbQuai As Integer
    Dim ValNbColis As Integer
    Dim varImmatriculation As String
     
    If ListeSelection(Liste_ArriveeQuai) Then
        'Copie les élements sélectionnés vers la liste de droite
     
     
                    HeureMiseAQuai = SaisieHeureMiseAQuai
                    valNbQuai = SaisieQuai
                    ValNbColis = SaisieColis
                    varImmatriculation = SaisieImmat
     
     
     
    'Attention ici on considère que la personne a saisi les valeurs correspondants aux champs. Il n'y a pas de gestion d'erreur. Il faudrait rajouter des IF pour vérifier la qualité des valeurs saisies.
         TransposerElementMisAQuai Liste_ArriveeQuai, Liste_MiseAquai, HeureMiseAQuai, valNbQuai, ValNbColis, varImmatriculation, True
                    Else
                     MsgBox "la date saisie est incorrecte !"
                    End If
    'End If
    End Sub


    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
    Function SaisieHeureMiseAQuai()
    Dim Chaine As Date
     
    BoxSaisie:
    Chaine = InputBox("Saisir l'heure de mise à quai au format hh:mm" & _
        Chr(13) + Chr(13) + "Appuyer sur Ok Pour valider la saisie." & _
        Chr(13) + Chr(13) + "Appuyer sur Annuler pour annuler la saisie.", "Heure de mise à quai?", "0")
     
     
     
    If Not IsDate(Chaine) Then
     
                MsgBox "La valeur saisie n'est pas une heure" + Chr(13) + "Veuillez recommencer la saisie", vbExclamation, "Erreur de saisie"
                GoTo BoxSaisie
     
        Else
                SaisieHeureMiseAQuai = CDate(Chaine)
     
    End If
     
    End Function
    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
    Function SaisieQuai()
    Dim Chaine As String
     
    BoxSaisie:
    Chaine = InputBox("Saisir le numéro de quai pour la remorque" & _
        Chr(13) + Chr(13) + "Appuyer sur Ok Pour valider la saisie." & _
        Chr(13) + Chr(13) + "Appuyer sur Annuler pour annuler la saisie.", "Numéro de quai?", "0")
     
    If Chaine = "" Then
        Chaine = -2
        Exit Function
     
    Else
        If Not IsNumeric(Chaine) Then
                MsgBox "La valeur saisie n'est pas un nombre." + Chr(13) + "Veuillez recommencer la saisie", vbExclamation, "Erreur de saisie"
                GoTo BoxSaisie
        End If
        If Not (CInt(Chaine) > 0 And CInt(Chaine) < 65) Then
                    MsgBox "Le numéro de quai doit être compris entre 1 et 52." + Chr(13) + "Veuillez recommencer la saisie", vbExclamation, "Erreur de saisie"
            GoTo BoxSaisie
        Else
                SaisieQuai = CInt(Chaine)
     
        End If
    End If
    End Function
    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
    Function SaisieColis() As Integer
    Dim Chaine As String
     
    BoxSaisie:
    Chaine = InputBox("Saisir le nombre de colis transportés" & _
        Chr(13) + Chr(13) + "Appuyer sur Ok Pour valider la saisie." & _
        Chr(13) + Chr(13) + "Appuyer sur Annuler pour annuler la saisie.", "Nombre de colis?", "0")
     
    If Chaine = "" Then
        Chaine = -2
        SaisieColis = CInt(Chaine)
    Else
        If Not IsNumeric(Chaine) Then
                MsgBox "La valeur saisie n'est pas un nombre." + Chr(13) + "Veuillez recommencer la saisie", vbExclamation, "Erreur de saisie"
               GoTo BoxSaisie
            Else
            SaisieColis = CInt(Chaine)
     
        End If
    End If
    End Function
    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
    Function SaisieImmat() As String
    Dim Chaine As String
     
    BoxSaisie:
    Chaine = InputBox("Saisir l'immatriculation de la remorque." & _
        Chr(13) + Chr(13) + "Appuyer sur Ok Pour valider la saisie." & _
        Chr(13) + Chr(13) + "Appuyer sur Annuler pour annuler la saisie.", "Immatriculation?", "0")
    If Chaine = "" Then
        Chaine = -2
        SaisieImmat = Chaine
     
    Else
     
            SaisieImmat = UCase(Chaine)
     
    End If
    End Function

  2. #62
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour facteur,

    Pourquoi ne pas créer un formulaire indépendant pour la saisie de ces 4 valeurs avec 4 textbox indépendants et récupérer ces valeurs.
    La gestion des incohérences peut se faire avec des boutons Valider ou Annuler.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  3. #63
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    J'y avais pensé mais ce qui est nouveau pour moi c'est comment faire le lien entre les données contenues dans ce formulaire indépéndant et les lignes séléctionnes de la listes box liste Liste_ArriveeQuai ,
    Si je le crée, j'insere 4 textebox à qui je donné comme source de données les fontions que j'ai créees ?..non ?

  4. #64
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Salut facteur,

    1- Je joins le formulaire indépendant dans la base ci-jointe avec les codes correspondants (il te suffit de l'importer dans ta base).
    Regarde les propriétés (Fenêtre indépendante - Fenêtre Modale - Bouton ...., tu peux en rajouter)
    2- Il faut créer un nouveau module INDEPENDANT M_Module et y transférer la procédure TransposerElementMisAQuai du module de formulaire (normalement il n'y a rien à y modifier sauf le transformer en PUBLIC au lieu de PRIVATE).
    3- Modifier la procédure ArriveeMiseAQuai_Click() en une action de l'ouverture du formulaire indépendant uniquement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub ArriveeMiseAQuai_Click()
    DoCmd.OpenForm "F_ChoixMiseAQuai"
    End Sub
    A toi de continuer.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  5. #65
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    Bravo..
    Mais j'ai un soucis.
    sur la procedure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub btnvalider_Click()
    , au niveau du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If IsNumeric(Me.TxtImmatriculation) And Not IsNull(Me.TxtImmatriculation) Then.....
    je ne peux que inscrire des chiffres .Or une plaque d immatriculation se compose de chiffres et de lettres..
    Je ne parviens pas a modifier ton code afin que je puisse ecrire dans le TxtImmatriculation , des chiffres et des lettres.

  6. #66
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    C'est bon , j 'ai pu rectifier le probleme...
    Dans la procedure ;
    Private Sub btnvalider_Click()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim TxtImmatriculation As String
     
        ......            
                'Vérifier que l'immatriculation est correct
                                   If (Me.TxtImmatriculation) <> 0 Then
    J'ai allege la ligne 5

    et dans la procedure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub TransposerElementMisAQuai(Liste_Depart As ListBox, Liste_Arrivee As ListBox, Heure_MiseAQuai As Variant, _
       Optional NbQuai As Integer, Optional NbColis As Integer, Optional Immatriculation As String, _
      Optional LimiteSelection As Boolean = True, Optional bolSelection As Boolean = True)
     
    .....               
     
    db.Execute "UPDATE Rq_tb_Liaison SET SelectionMiseAQuai=NOT SelectionMiseAQuai, Heure_MiseAquai  = #" & Heure_MiseAQuai & "#, NbQuai=" & NbQuai _
                   & ", NbColis=" & NbColis & ",Immat= '" & Immatriculation & "'  WHERE No_Liaison=" & _
                    Chr(34) & .Column(0, i) & Chr(34)....
    Au niveau de la ligne 8 , j'ai insere des ' de part et d'autre de la variable " & Immatriculation & " pour que celle ci soit lu en texte.

  7. #67
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    OK , je te laisse continuer !
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  8. #68
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    Bonjour madefemere,
    tu t'es bien reposé ce week end car c'est reparti pour du access..
    Ce week end , j'ai essayé de créer un petit code vba avec la fonction Ucase() qui transforme les carctères de minuscule en majuscule.
    Dans le formulaire F_ChoixMiseAQuai, Sur l'évenement "changement" du texte box , TxtImmatriculation, j'ai donc inseré le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub TxtImmatriculation_Change()
    Me.TxtImmatriculation.Text = UCase(Me.TxtImmatriculation.Text)
    End Sub
    Le code convertit bien le minuscule en majuscule mais chose étrange, l'écriture se fait de droite à gauche.
    Exemple,
    Dans le textebox TxtImmatriculation, si je veux ecrire facteur75, le resultat sera 57RUETCAF.
    Et dans les propriétes , rien d'anormale.
    Et si je supprime le code vba, l'écriture se fait de nouveau de gauche a droite mais sans la converstion en majuscule ?
    Je n'ycompriend rien ..

  9. #69
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour facteur,

    Je ne peux rien te dire là-dessus vu que le souci ne se présente pas chez moi avec ton code et je n'ai jamais eu vent d'une telle anomalie.
    Vérifie quand même dans les Propriétés - Format - Sens lecture ?

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  10. #70
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    ja'i verifié dans les Propriétés - Format - Sens lecture .
    C'est affiché 'contexte" et même si je clic sur "De gauche à droite" , j'ai le même problème.
    tu as bien mis le code sur l'évenement " sur changement" ?

  11. #71
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    Bon aprés plusieurs test, c'est l'évenement "sur chargement" qui posait problème.
    je ne sais pas pourquoi d'ailleurs.
    J 'ai donc mis mon code dans l'evenement "sur sortie" et cela fonctionne trés bien...
    Je vais maintenant mettre un masque de saisie ( format "hh:mm") sur le textebox txtDateMiseAQuai.
    Et je reviendrais vers toi..

  12. #72
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    Aprés avoir mis un masque de saisie dans le texte box txtDateMiseAQuai, j'essaye en vain de modifier la ligne de code 8 et 11 de la procédure ci dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub btnvalider_Click()
    Dim TxtImmatriculation As String
     
        'Vérifier que l'heure saisie est correcte
        If IsDate(Me.txtDateMiseAQuai) And InStr(Me.txtDateMiseAQuai, ":") <> 0 Then
     
            'Vérifier que le numéro de quai est correct
            If IsNumeric(Me.txtNumQuai) And Not IsNull(Me.txtNumQuai) Then
    ...
    Else
    MsgBox " La valeur saisie en numéro de quai est incorrecte !"
    je souhaite remplacer la ligne 8 par le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If IsNumeric(Me.txtNumQuai) > 0 And IsNumeric(Me.txtNumQuai) < 52 And Not IsNull(Me.txtNumQuai) Then...
    et la ligne 11 par le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Else
            MsgBox "Le numéro de quai doit être compris entre 1 et 52." + Chr(13) + "Veuillez recommencer la saisie"
    En résumé, j'aimerais créer un messageBox qui dit que le numero de quai inscrit doit etre compris entre 1 et 52

    Actuellement, avec la modification, telle que je l'aie mis dans le message, ne fonctionne pas.
    Même si j'indique un numero de quai compris en tre 1 et 52, j'ai le message qui s'affiche
    "Le numéro de quai doit être compris entre 1 et 52."

  13. #73
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Il faut bien écrire correctement les conditions : séparer celles qui devraient l'être et regrouper :
    Tu as 3 conditions :
    1 - Me.txtNumQuai doit être Numérique
    2 - Me.txtNumQuai ne doit pas être null
    3 - Me.txtNumQuai doit être compris entre 0 et 52.

    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If IsNumeric(Me.txtNumQuai)  And Not IsNull(Me.txtNumQuai) And (Me.txtNumQuai >= 0 And Me.txtNumQuai <= 52) Then
    A toi de jouer.
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  14. #74
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    C'est trés clair..merci
    J'ai repris ta méthode de formulaire pour remplacer les inputbox heure d'arrivée et heure de fin déchargement.

    Maintenant, reprenons la discussion que l'on avait sur la condition couleur..
    Les lignes qui composent la 1ere listebox Liste_VracArrivee comporte plusieurs champ dont celui du champ "Nom_Ville".
    Comment faire pour que les lignes ,qui contient dans le champ Nom_Ville, les noms CLERMONT ou NEOLG GONDREVILLE ou TOULOUSE ou BAR LE DUC,
    se colorient en rouge.
    Et que ces lignes rouges reste en rouge lors du transfert sur les 3 autres listebox :
    Liste_ArriveeQuai
    Liste_MiseAquai
    Liste_VracTerminee

    je vais chercher de mon coté également

  15. #75
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    Madefemere,
    avant de se lancer dans la solution des ligne sen couleur, J'aimerais avoir des lumières sur une explication qui me laisse perplexe.
    Le code évenement ci dessous fait appel a la procédure TransposerElementMisAQuai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub btnvalider_Click()
    ......                
                    'Lancer la transposition de la liste dans le formulaire F_Remorque_vrac
                         Call TransposerElementMisAQuai(Forms!F_Remorque_vrac!Liste_ArriveeQuai, Forms!F_Remorque_vrac!Liste_MiseAquai, _
                         Me.txtDateMiseAQuai, Me.txtNumQuai, Me.txtNbColis, Me.TxtImmatriculation, True)
                        DoCmd.Close acForm, "F_ChoixMiseAQuai"
                   ......
     
    End sub
    ci dessous la procédure appelée
    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
    Public Sub TransposerElementMisAQuai(Liste_Depart As ListBox, Liste_Arrivee As ListBox, prHeure_MiseAQuai As Variant, _
       Optional prNbQuai As Integer, Optional prNbColis As Integer, Optional prImmatriculation As String, _
      Optional LimiteSelection As Boolean = True, Optional bolSelection As Boolean = True)
     
    .....     
    If .Selected(i) Then
               If IsNull(prHeure_MiseAQuai) Then
                   db.Execute "UPDATE Rq_tb_Liaison SET SelectionMiseAQuai=NOT SelectionMiseAQuai, Heure_MiseAquai= Null, NbQuai=Null, NbColis=Null,Immat=Null WHERE No_Liaison=" & _
                    Chr(34) & .Column(0, i) & Chr(34)
               Else
                   db.Execute "UPDATE Rq_tb_Liaison SET SelectionMiseAQuai=NOT SelectionMiseAQuai, Heure_MiseAquai  = #" & prHeure_MiseAQuai & "#, NbQuai=" & prNbQuai _
                   & ", NbColis=" & prNbColis & ",Immat= '" & prImmatriculation & " ' WHERE No_Liaison=" & _
                    Chr(34) & .Column(0, i) & Chr(34)
               End If
           End If
        Next i
     
     
    'Rafraichit la zone de liste source
    .Requery
    End With
    'Rafraichit la zone de liste de départ
    Liste_Arrivee.Requery
    End Sub
    Ma question est la suivante,
    Comment les données contenues dans txtDateMiseAQuai, txtNumQuai, txtNbColis, TxtImmatriculation peuvent se retrouver dans la procédure
    Public Sub TransposerElementMisAQuai
    au niveau de la requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    db.Execute "UPDATE Rq_tb_Liaison SET SelectionMiseAQuai=NOT SelectionMiseAQuai, Heure_MiseAquai  = #" & prHeure_MiseAQuai & "#, NbQuai=" & prNbQuai _
                   & ", NbColis=" & prNbColis & ",Immat= '" & prImmatriculation & " ' WHERE No_Liaison=" & _
                    Chr(34) & .Column(0, i) & Chr(34)
    En résumé, ce que je ne comprend aps, c'est que dans la requete, j'ai des variables référencées du manière ( prHeure_MiseAQuai ; prNbQuai; prNbColis; prImmatriculation) et que dans le formulaire "F_ChoixMiseAQuai", les données que je rentre dans les différents textebox sont référencés differemment (txtDateMiseAQuai, txtNumQuai, txtNbColis, TxtImmatriculation );
    ET que cela fonctionne à merveille ,,,,

  16. #76
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    T'as pas encore lu totalement le tuto VBA !!
    En déclarant la procédure en Public dans un module INDEPENDANT, ça veut dire que la procédure est accessible de n'importe quel endroit de ta base de données.
    La procédure btnValider_Click se trouve dans le formulaire F_ChoixMiseAQuai
    Donc dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Call TransposerElementMisAQuai(Forms!F_Remorque_vrac!Liste_ArriveeQuai, Forms!F_Remorque_vrac!Liste_MiseAquai, _
                         Me.txtDateMiseAQuai, Me.txtNumQuai, Me.txtNbColis, Me.TxtImmatriculation, True)
    Les arguments Forms!F_Remorque_vrac!Liste_ArriveeQuai, Forms!F_Remorque_vrac!Liste_MiseAquai se trouvent dans le formulaire initial, mais
    Me.txtDateMiseAQuai, Me.txtNumQuai, Me.txtNbColis, Me.TxtImmatriculation, avec le Me fait référence au formulaire où se trouve la procédure appelant F_ChoixMiseAQuai.
    Et à la fin de la procédure btnvalider_Click, on ferme le formulaire F_ChoixMiseAQuai.

    Il n'y a pas de magie. Ce n'est que de la logique.

    J'essaie de trouver quelque chose sur le surlignement, il doit y avoir un tuto là-dessus. Je t'orienterai.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  17. #77
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    C'est vrai, j'ai lu en diagonale le tuto mais je vais m'y pencher serieusement aprés avoir finit avec cette base de donnée ..promis..
    J'ai compris ce que tu as ecris mais là où je n'arrive toujours pas à comprendre ..c'est d'ou viennent les valeurs des variables (prHeure_MiseAQuai ; prNbQuai et prImmatriculation ) contenu dans la requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    db.Execute "UPDATE Rq_tb_Liaison SET SelectionMiseAQuai=NOT SelectionMiseAQuai, Heure_MiseAquai  = #" & prHeure_MiseAQuai & "#, NbQuai=" & prNbQuai _
                   & ", NbColis=" & prNbColis & ",Immat= '" & prImmatriculation & " ' WHERE No_Liaison=" & _
                    Chr(34) & .Column(0, i) & Chr(34)
    Dans cette requete , j'aurais pensé remplacer respectivement:
    la variable prHeure_MiseAQuai par txtDateMiseAQuai
    la variable prNbQuai par txtNumQuai
    et la variable prImmatriculation parTxtImmatriculation

    Est ce faux ?

  18. #78
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Pourquoi tu veux les remplacer ?

    C'est comme si dans la fonction Sin X, tu vas remplacer par Sin 30° définitivement ?
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  19. #79
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    lol
    J'ai un peu modifié le formulaire F_Choix_Arriveepourqui je puisse rentrer rentrer 3 informations lors du transfert des lignes de la listebox Liste_ArriveeVrac vers la Liste__ArriveeQuai.

    Donc si je te suis c'est normal que : dans la procédure et l'appel de la procédure :

    la variable prHeure_MiseAQuai prend comme valeur celle du txtDateMiseAQuai du formulaire F_Choix_arrivee
    la variable prNbQuai prend comme valeur la valeur du txtNumQuai du formulaire du formulaire F_Choix_arrivee
    et la variable prImmatriculation prend comme valeur la valeur du TxtImmatriculation du formulaire F_Choix_arrivee



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Sub TransposerElement(Liste_Depart As ListBox, Liste_Arrivee As ListBox, prHeure_Arrivee As Variant, _
      Optional prNbColis As Integer, Optional prImmatriculation As String, _
      Optional LimiteSelection As Boolean = True, Optional bolSelection As Boolean = True)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Call TransposerElement(Forms!F_Remorque_vrac!Liste_VracArrivee, Forms!F_Remorque_vrac!Liste_ArriveeQuai, _
                         Me.txtDateHeureArrivee, Me.txtNbColis, Me.TxtImmatriculation, True)
                        DoCmd.Close acForm, "F_Choix_Arrivee
    "

    Je pensais , par exemple, que la variable prHeure_MiseAQuai ne pouvait pas avoir comme valeur celle du txtDateMiseAQuai car txtdateMiseAQuai n 'etait pas référencé dans la procédure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Sub TransposerElement(Liste_Depart As ListBox, Liste_Arrivee As ListBox, prHeure_Arrivee As Variant, _
      Optional prNbColis As Integer, Optional prImmatriculation As String, _
      Optional LimiteSelection As Boolean = True, Optional bolSelection As Boolean = True)
    je vais lire attentivement le tuto des variables...

  20. #80
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    C'est normal, fais attention aux anti-dépresseurs et ne deviens pas ou , sois
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/04/2015, 16h43
  2. Réponses: 1
    Dernier message: 15/12/2014, 10h47
  3. Réponses: 19
    Dernier message: 23/02/2008, 19h19
  4. Réponses: 3
    Dernier message: 27/04/2006, 16h29
  5. Lancer automatiquement un programme après connexion Internet
    Par sunshine dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 27/05/2005, 22h18

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