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 :

Une Serie d'enregistrements


Sujet :

VB 6 et antérieur

  1. #21
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Bonjour,

    c'est là où ça confirme que tu ne cherches pas assez par toi même. Si les 0 ne sont pas acceptés, c'est dû à une petite erreur dans cette sub :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     Private Sub TxtChq_KeyPress(KeyAscii As Integer)
    Select Case KeyAscii
        Case 49 To 57, 65 To 90, 97 To 122
         ' c'est OK accepte l'entrée, 1° plage les chiffres, 2° de A a Z derniere plage de a A z
        Case 8
         ' c'est Ok accepte l'entrée, 8 pour touche effacement
        Case Else
         ' la on annule l'entrée
         KeyAscii = 0
    End Select
    End Sub
    La même erreur existe dans les autres sub équivalentes, sauras tu la trouver ? Pour débuguer un code, il est aussi très utile d'utiliser les outils de débogage (points d'arrêt, espions, etc...). Utilises tu ces outils ? Je te conseille par exemple de mettre le curseur sur la ligne "Select Case KeyAscii" et d'appuyer sur la touche F9, cela vaajouter un point d'arret, lances alors ton programme et quand tu vas saisir un numéro de chèque, le programme va s'arreter à cette ligne, pour suivre son exécution pas à pas, appuis ensuite sur F8, tu devrais mieux comprendre ce qui se passe
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  2. #22
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 130
    Points : 22
    Points
    22
    Par défaut Merci OhMonBato
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    c'est là où ça confirme que tu ne cherches pas assez par toi même. Si les 0 ne sont pas acceptés, c'est dû à une petite erreur dans cette sub
    Pourquoi cette agressivité contre moi !!!!!!!!

    J'ai rectifiée l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     Private Sub TxtChq_KeyPress(KeyAscii As Integer)
    Select Case KeyAscii
        Case 49 To 57, 65 To 90, 97 To 122
         ' c'est OK accepte l'entrée, 1° plage les chiffres, 2° de A a Z derniere plage de a A z
        Case 8
         ' c'est Ok accepte l'entrée, 8 pour touche effacement
        Case Else
         ' la on annule l'entrée
         KeyAscii = 0
    End Select
    End Sub
    Citation Envoyé par OhMonBato
    Pour débuguer un code, il est aussi très utile d'utiliser les outils de débogage (points d'arrêt, espions, etc...). Utilises tu ces outils ? Je te conseille par exemple de mettre le curseur sur la ligne "Select Case KeyAscii" et d'appuyer sur la touche F9, cela vaajouter un point d'arret, lances alors ton programme et quand tu vas saisir un numéro de chèque, le programme va s'arreter à cette ligne, pour suivre son exécution pas à pas, appuis ensuite sur F8, tu devrais mieux comprendre ce qui se passe
    Je vous remercie beaucoup pour cette information très détaillée. je ne l'oubliera jamais C'est Promis.

    Je voudrais savoir est-il possible d'afficher les routines de la partie load à partir de dernière enregistrement enregistré (Tables Banque...Paiement_Cheque....Paiement_Virement

    J'ai changée DESC par ASC mais ça marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    "Select top 1 Num_Cheque From Paiement_Cheque Order By Num_Cheque ASC"
    Reste une chose tres important pourquoi cette erreur se déclenche a chaque fois. de la table Paiement_Cheque
    Erreur d'exécution '-2147467259(80004005)'
    Modification non effectuées:risque de doublons dans champs index, cle principale ou relation interdisant les doublons . Modifiez les données des champs contenant les doublons, enlevez ou redéfinissez l'index pour permettre les doublons
    Merci OhMonBato

    Merci d'avance

  3. #23
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 078
    Points : 17 123
    Points
    17 123
    Par défaut
    Citation Envoyé par lunixienne Voir le message
    Citation Envoyé par OhMonBato
    c'est là où ça confirme que tu ne cherches pas assez par toi même. Si les 0 ne sont pas acceptés, c'est dû à une petite erreur dans cette sub
    Pourquoi cette agressivité contre moi !!!!!!!!
    Ce n'est pas de l'agressivité, c'est un constat amical, d'ailleurs il te donne les moyens de debuguer.
    As tu MSDN d'instalé sur ton ordi, il est disponnible ICI en Francais

    Citation Envoyé par lunixienne Voir le message
    J'ai rectifiée l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Private Sub TxtChq_KeyPress(KeyAscii As Integer)
    Select Case KeyAscii
        Case 49 To 57, 65 To 90, 97 To 122
    ......
    J'y reviendrai plus bas, 48 pas 49
    Citation Envoyé par lunixienne Voir le message
    ......
    Je voudrais savoir est-il possible d'afficher les routines de la partie load à partir de dernière enregistrement enregistré (Tables Banque...Paiement_Cheque....Paiement_Virement
    ......
    J'ai changée DESC par ASC mais ça marche pas
    Citation Envoyé par F1 sur le mot DESC
    La clause ORDER BY est facultative. Mais si vous n'incluez pas ORDER BY, les données sont affichées sans être triées.
    L'ordre de tri par défaut est l'ordre croissant (de A à Z et de 0 à 9). Toutefois, vous pouvez inclure le mot réservé ASC à la fin de chaque champ que vous souhaitez trier par ordre croissant.
    Pour effectuer un tri par ordre décroissant (de Z à A et de 9 à 0), ajoutez le mot réservé DESC à la fin de chaque champ que vous souhaitez trier par ordre décroissant.
    mais aussi http://laurent-audibert.developpez.c...D021.php#toc58
    Donc dans le Load, l'exemple pour la table Banque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Form_Load()
    OuvreTable TableBanque, "Banque", True, "Select * From Banque Order By Num_Enreg_Banque DESC"
    If TableBanque.EOF Then
    ..............
    Item pour les 2 autres Table.

    Citation Envoyé par lunixienne Voir le message
    Reste une chose tres important pourquoi cette erreur se déclenche a chaque fois. de la table Paiement_Cheque
    enlevez ou redéfinissez l'index pour permettre les doublons
    L'index Num_Enreg_Cheque n'est il pas en AutoIncrémantation ?
    ou un des autres des champs n'est il pas declaré comme ne devant être qu'Unique.

    Pour le reste, désolé pour le 0 (zero) code ascii 48.
    Petite simplification de code, surtout pour sa lecture.
    Dans le module.bas
    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
    Public Function VerifKeyPress(QuelTextBox As TextBox, AsciiKey As Integer)
    'cette fonction vérifie en synchro pour chaque caractère entré au clavier
    'dans un TextBox, sur n'importe quel Form
    VerifKeyPress = AsciiKey
    Select Case AsciiKey
        Case 8, 48 To 57, 65 To 90, 97 To 122
         ' c'est OK acceptation de l'entrée,
         ' 8 pour touche effacement,
         ' 1° plage les chiffres,
         ' 2° de A a Z dernière plage de a A z
        Case Else
         ' la on annule l'entrée
         VerifKeyPress = 0
    End Select
    End Function
    Public Function NumCodeValide(QuelTextBox As TextBox) As Boolean
    'cette fonction vérifie le contenu d'un TextBox depuis n'importe quel Form
    'dans lequel on aurait fait un Coller, juste avant l'utilisation du contenu de ce TextBox
    Dim U As Integer
    Dim AsciiCaracterE As Integer
    'élimine les espaces
    QuelTextBox.Text = Replace(QuelTextBox.Text, " ", "", , , vbTextCompare)
    'vérifier la présence autre que les chiffres et lettres majuscules ou minuscules
    NumCodeValide = True
    For U = 1 To Len(QuelTextBox.Text)
     AsciiCaracterE = Asc(Mid(QuelTextBox.Text, U, 1))
     Select Case AsciiCaracterE
        Case 48 To 57, 65 To 90, 97 To 122
         ' c'est OK accepte ce caractére,
         ' 1° plage les chiffres,
         ' 2° de A a Z dernière plage de a A z
        Case Else
         ' là, un copier/Coller a permis d'entrer un caractére interdit
         NumCodeValide = False: Exit Function
     End Select
    Next U
    End Function
    Exemples sur un Form avec 3 TextBoxs et 1 CommandButton
    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
    Option Explicit
     
    'exemple d'appel de la vérification synchro
    Private Sub Text1_KeyPress(KeyAscii As Integer)
    KeyAscii = VerifKeyPress(Text1, KeyAscii)
    End Sub
    Private Sub Text2_KeyPress(KeyAscii As Integer)
    KeyAscii = VerifKeyPress(Text2, KeyAscii)
    End Sub
    Private Sub Text3_KeyPress(KeyAscii As Integer)
    KeyAscii = VerifKeyPress(Text3, KeyAscii)
    End Sub
     
    'exemple d'appel de la vérification avant utilisation du contenu d'un TextBox
    'ici Text1
    Private Sub Command1_Click()
    'ce bouton peut être le bouton Ajouter ou/et Modifier ou ....
    'en tout cas un bouton declencheur d'une intervention sur ta BD
    If NumCodeValide(Text1) = False Then
     MsgBox "Votre N° " & Text1.Text & " n'est pas valide", vbCritical
    'éventuellement redonner le focus au TextBox
     Text1.SetFocus Exit Sub
    End If
    End Sub
    Bon je vais bricoler de mon coté
    pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  4. #24
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 130
    Points : 22
    Points
    22
    Par défaut
    Bonsoir à tous

    ProgElect

    Toujours tu m'étonne par ton analyse ,et tes solutions ,Respect

    Merci pour ton aide précieuse
    Merci OhMonBato

    *Bon j'ai une autre question alors je fais un autre post ...*

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [CR] Comment limiter une page à 10 enregistrements
    Par nsanabi dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 06/01/2006, 12h51
  2. [VBA-E] Chartspace : définir couleur d'une série
    Par alexxx69 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/10/2005, 21h57
  3. slection dans une intervalle d'enregistrement
    Par toome dans le forum Langage SQL
    Réponses: 1
    Dernier message: 30/08/2005, 15h17
  4. [langage] Lancer une serie de commande en cmd par perl
    Par Ludo167 dans le forum Langage
    Réponses: 6
    Dernier message: 13/07/2004, 14h15
  5. Lancer une serie de ligne de commande en un coup
    Par dzincou dans le forum Linux
    Réponses: 2
    Dernier message: 15/03/2004, 17h15

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