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 :

Mise à jour Colonne Solde.


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Algérie

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2007
    Messages : 45
    Points : 27
    Points
    27
    Par défaut Mise à jour Colonne Solde.
    Bonjour le Forum
    J'ai réalisé une petite application en vb6 pour suivre mes dépenses personnelles et celles relatives au quotidien de ma famille.
    Mon Problème est que je n'arrive pas à trouver la solution pour mettre à jour la colonne solde après modification apportée dans la colonne Crédit ou Débit. Le tableau se présente comme suit:

    Détail Opération Débit Crédit Solde
    repport 2000 0.00 2000
    xxxx 0.00 100 1900
    yyyy. 400 0.00 2300
    zzzzzzz 0.00 600 1700
    aaaaaaa 0.00 800 900

    ce que je veux est que lorsque j'apporte une modification dans la colonne débit ou celle du crédit la colonne du solde se met à jour automatiquement ex: je modifie la ligne yyyyy en débit je mets 200 au lieu de 400 les lignes yyyyy.... zzzz.. et aaaaa doivent avoir
    successivement (1900+200)=2100;(2100-600)=1500;(1500-800)=700 Merci pour votre attention.

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

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 067
    Points : 17 157
    Points
    17 157
    Par défaut
    Salut

    Quel contrôle utilises tu pour l'affichage de tes données?
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Algérie

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2007
    Messages : 45
    Points : 27
    Points
    27
    Par défaut
    Bonjour
    Le controle MSFlexgride .Merci

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

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 067
    Points : 17 157
    Points
    17 157
    Par défaut
    Re

    Bon je te propose d'utiliser plutôt un FLEXGRID ou mieux un MSHFLEXGRID
    Regardes ses liens:

    Comment permettre à l'utilisateur de taper du texte dans une flexgrid ?
    Une discussion ou j’interviens avec un bout de code
    Demo d'un MSHFLEXGRID avec cellules Checked et texte

    Si cela te convient, je/nous pourront t'aider pour la suite.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

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

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 067
    Points : 17 157
    Points
    17 157
    Par défaut
    Salut

    Vue le beau temps .... je t'ai fait un code adapté à ta problématique.
    Sur un Form, un Textbox et un MSHFlexGrid.
    Pour le MSHFlexGrid, Clique droit dans la boite des composants, cocher Microsoft Hierarchical FlexGrid Control 6.0(SP4)(OLEDB)

    Ce bout de code fait se que tu as demandé
    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
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    Option Explicit
    Dim TopText As Integer
    Dim LeftText As Long
    Dim WidthText As Integer
     
    Private Sub Form_Load()
    TextEntrer.Height = MSHFlexGrid1.RowHeight(1) - 15
     
    'pour le MSHFlexGrid faire reference à:
            'Composants ==> Microsoft Hierarchical FlexGrid Control 6.0(SP4)(OLEDB)
    'Chemin du dossier possible: Chemin d'accès: C:\Windows\SysWow64\MSHFLXGD.OCX
    MSHFlexGrid1.Top = 90
    MSHFlexGrid1.Left = 90
     
    MSHFlexGrid1.FixedRows = 1
    MSHFlexGrid1.FixedCols = 0
    MSHFlexGrid1.Rows = 6
    MSHFlexGrid1.Cols = 4
    MSHFlexGrid1.ScrollBars = flexScrollBarNone
     
    MSHFlexGrid1.ColWidth(0) = 2000
    MSHFlexGrid1.TextMatrix(0, 0) = "Détail opération"
    MSHFlexGrid1.ColWidth(1) = 1000
    MSHFlexGrid1.TextMatrix(0, 1) = "Débit"
    MSHFlexGrid1.ColWidth(2) = 1000
    MSHFlexGrid1.TextMatrix(0, 2) = "Crédit"
    MSHFlexGrid1.ColWidth(3) = 1000
    MSHFlexGrid1.TextMatrix(0, 3) = "Solde"
     
    Dim T As Integer
    MSHFlexGrid1.Width = 0
    For T = 0 To MSHFlexGrid1.Cols - 1
        MSHFlexGrid1.Width = MSHFlexGrid1.Width + MSHFlexGrid1.ColWidth(T)
    Next T
     
    MSHFlexGrid1.Height = 0
    For T = 0 To MSHFlexGrid1.Rows - 1
        MSHFlexGrid1.Height = MSHFlexGrid1.Height + MSHFlexGrid1.RowHeight(T)
    Next T
     
    MSHFlexGrid1.TextMatrix(1, 0) = "Repport"
    MSHFlexGrid1.TextMatrix(1, 1) = "200"
    MSHFlexGrid1.TextMatrix(1, 2) = "0.00"
    MSHFlexGrid1.TextMatrix(1, 3) = "2000"
     
    MSHFlexGrid1.TextMatrix(2, 0) = "xxxx"
    MSHFlexGrid1.TextMatrix(2, 1) = "0.00"
    MSHFlexGrid1.TextMatrix(2, 2) = "100"
    MSHFlexGrid1.TextMatrix(2, 3) = "1900"
     
    MSHFlexGrid1.TextMatrix(3, 0) = "yyyy"
    MSHFlexGrid1.TextMatrix(3, 1) = "400"
    MSHFlexGrid1.TextMatrix(3, 2) = "0.00"
    MSHFlexGrid1.TextMatrix(3, 3) = "2300"
     
    MSHFlexGrid1.TextMatrix(4, 0) = "zzzzzzzzz"
    MSHFlexGrid1.TextMatrix(4, 1) = "0.00"
    MSHFlexGrid1.TextMatrix(4, 2) = "600"
    MSHFlexGrid1.TextMatrix(4, 3) = "1700"
     
    MSHFlexGrid1.TextMatrix(5, 0) = "aaaaaaaaa"
    MSHFlexGrid1.TextMatrix(5, 1) = "0.00"
    MSHFlexGrid1.TextMatrix(5, 2) = "800"
    MSHFlexGrid1.TextMatrix(5, 3) = "900"
     
    Form1.Width = MSHFlexGrid1.Width + (MSHFlexGrid1.Left * 2) + 220
    Form1.Height = MSHFlexGrid1.Height + (MSHFlexGrid1.Top * 2) + 560
     
    End Sub
    Private Sub MSHFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    'pour être sur que la boite entrées du texte ne soit pas visible
    TextEntrer.Left = -TextEntrer.Width
    End Sub
    Private Sub MSHFlexGrid1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
    'pour être sur que la boite entrées du texte ne soit pas visible
    TextEntrer.Left = -TextEntrer.Width
    If MSHFlexGrid1.MouseRow = 0 Then Exit Sub
     
    If MSHFlexGrid1.MouseCol = 1 Or MSHFlexGrid1.MouseCol = 2 Then
        'memorisation index colonne et index ligne de la cellule cliqué
        MSHFlexGrid1.Tag = MSHFlexGrid1.MouseCol & "," & MSHFlexGrid1.MouseRow
        'pour definir le Left de la boite entrées du texte
        LeftText = (MSHFlexGrid1.CellLeft + MSHFlexGrid1.Left) - 15
        'pour ajuster le width de la boite entrées du texte
        WidthText = MSHFlexGrid1.CellWidth
        'pour definir le Top de la boite entrées du texte
        TopText = (MSHFlexGrid1.CellTop + MSHFlexGrid1.Top) - 15
        'pour remplir la boite entrées du texte avec le texte de la cellule active
        TextEntrer.Text = MSHFlexGrid1.Text
        'deplacement et recouvrement
        'de la cellule active par la boite entrées du texte
        TextEntrer.Move LeftText, TopText, WidthText
        'donne le focus à la boite entrées du texte
        TextEntrer.SetFocus
    End If
    End Sub
    Private Sub MSHFlexGrid1_Scroll()
    'pour être sur que la boite entrées du texte ne soit pas visible
    'durant le defilement des lignes
    TextEntrer.Left = -TextEntrer.Width
    End Sub
     
     
    Private Sub TextEntrer_KeyPress(KeyAscii As Integer)
    'gestion pour la modification d'une cellule texte du grid
    If KeyAscii = 27 Then 'abandon
        TextEntrer.Left = -TextEntrer.Width: Exit Sub
    End If
    If KeyAscii = 13 Then 'validation de la modification
        Dim IdxS() As String
        Dim Calc As Single
        Dim DataEntrer, Data2
        KeyAscii = 0
        'VB calcul avec le separateur decimal ,(virgule) donc transforme l'eventuel point en virgule
        DataEntrer = Replace(TextEntrer.Text, ".", ",")
        If Not IsNumeric(DataEntrer) Then
            MsgBox "Entrez un chiffre"
            Exit Sub
        End If
        MSHFlexGrid1.Text = Replace(DataEntrer, ",", ".")
        TextEntrer.Left = -TextEntrer.Width
        IdxS = Split(MSHFlexGrid1.Tag, ",") 'recuperatioin du N° de colonne et du N° de ligne
        'recuperation du solde avant opération
        Data2 = Replace(MSHFlexGrid1.TextMatrix(IdxS(1), 3), ".", ",")
        If IdxS(0) = 1 Then
            ' donnée corespondant à la colonne Débit
            'soustraction du crédit au solde
            Calc = Data2 - CSng(DataEntrer)
            Else
            ' donnée corespondant à la colonne Crédit
            'ajout du crédit au solde
            Calc = Data2 + CSng(DataEntrer)
        End If
        'affichage du résultat du calcul
        MSHFlexGrid1.TextMatrix(IdxS(1), 3) = Calc
     
    End If
    End Sub
    Bien sûr je suis à disposition pour t'aider dans tout tes questionnements.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Algérie

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2007
    Messages : 45
    Points : 27
    Points
    27
    Par défaut
    Bonjour
    Merci beaucoup pour ta réponse.
    Le beau temps accompagne toujours le bon coeur .

    d'après ta réponse je vois que j'ai mal posé ma problématique car je n'ai pas dis que j'utilise une base de donnée access,
    que mon contrôle d'affichage des données est MSFlexgrid,je double click dessus pour afficher les données de la ligne à modifier
    dans des textboxs dans un form. J'effectues la modification et tout va bien, sauf que la colonne Calcul solde dans la base de donnée
    n'est pas à jour comme j'ai donné l'exemple au début de ma discussion.
    Evidemment j'ai consulté vos liens d'orientation et je trouve que ton Flexgrid avec cheked m'intéresse beaucoup.

    Quant au bout de code envoyé apporte la modification dans la colonne Détail et non pad dans débit ou crédit et signaler error "indice en dehors de la plage" à ce niveau If IdxS(0) = 1 Then surligné en jaune.encore une fois pardon pour votre temps consacré à mon problème
    Merci et bonne fin de journée.

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

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 067
    Points : 17 157
    Points
    17 157
    Par défaut
    Ok

    Je n'avais pas compris que tu avais un problème d'enregistrement dans la BD.

    Dans le code proposé (je l'ai mis à jour), la propriété Tag contenant le N° de ligne, tu peux récupérer le Détail opération, qui je suppose, est une clef de la BD.

    exemple de récupération appliqué au code exemple dans la procédure Sub TextEntrer_KeyPress à la suite de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        'affichage du résultat du calcul
        MSHFlexGrid1.TextMatrix(IdxS(1), 3) = Calc
        Dim RqSQL as String
        Dim ClefEnrgBd
        ClefEnregBD = MSHFlexGrid1.TextMatrix(IdxS(1), 0)
        RqSQL  = "Select * from nomdetatable Where DetailOperation = '" & ClefEnregBD & "'"
       'ouvrir la table,
       'remplir le champ solde avec MSHFlexGrid1.TextMatrix(IdxS(1), 3)
       'faire un Update
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Algérie

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2007
    Messages : 45
    Points : 27
    Points
    27
    Par défaut
    Bonjour ProgElect
    Mathématiquement ou Comptablement le Solde=(Somme Débit)-(Somme Crédit)
    revenant à notre tableau du début:
    ligne 1 ou repport sommedébit=2000,sommecrédit=0 , le solde est (2000-00)= 2000
    ligne 2 ou xxxx sommedébit=2000, sommecrédit= 100, le solde est (2000-100)= 1900
    ligne3 ou yyyy sommedébit=2400, sommecrédit=100, le solde est (2400-100)= 2300
    ligne4 ou zzzzz sommedébit=2400,sommcrédit=700, le solde est (2400-700)= 1700
    ligne5 ou aaaaa sommedébit=2400,sommecrédit=1500, le solde est (2400-1500)= 900

    mon problème est comment réaliser ce calcule sode ligne par ligne soit pas requête SQL ou Fonction VB
    et quelque soit la modification apportée au débit ou au crédit la colonne solde serait mise à jour.
    c'est comme le champ calculé dans la base access où (somme champ débit)-(somme champ crédit)=champ solde
    Merci beaucoup de votre attention.

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

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 067
    Points : 17 157
    Points
    17 157
    Par défaut
    Salut
    Mathématiquement ou Comptablement le Solde=(Somme Débit)-(Somme Crédit)
    J'ai un doute, ne serais pas plutôt sommecrédit - sommedébit = solde

    Donc, si j'ai raison, le calcul est toujours:
    sommecrédit - sommedébit = solde

    Dans le grid
    ClefEnrgBd (Détail Opération) est en colonne index 0 (pour moi c'est la clef primaire de la table concernée)
    sommedébit est en colonne index 1
    sommecrédit est en colonne index 2
    solde est en colonne index 3

    Donc en 1er petit changement dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub MSHFlexGrid1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
    'pour être sur que la boite entrées du texte ne soit pas visible
    TextEntrer.Left = -TextEntrer.Width
    If MSHFlexGrid1.MouseRow = 0 Then Exit Sub
     
    If MSHFlexGrid1.MouseCol = 1 Or MSHFlexGrid1.MouseCol = 2 Then
        'memorisation index colonne et index ligne de la cellule cliqué
        MSHFlexGrid1.Tag = MSHFlexGrid1.MouseRow '<************* ICI LE CHANGEMENT ****************
    ' le reste reste inchangé
    End Sub
    Changement dans
    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
    Private Sub TextEntrer_KeyPress(KeyAscii As Integer)
    'gestion pour la modification d'une cellule texte du grid
    If KeyAscii = 27 Then 'abandon
        TextEntrer.Left = -TextEntrer.Width: Exit Sub
    End If
    If KeyAscii = 13 Then 'validation de la modification
        TextEntrer.Left = -TextEntrer.Width
        Dim NumLgn As Integer
        Dim DataEntrer As Single
        KeyAscii = 0
        'VB calcul avec le separateur decimal ,(virgule) donc transforme l’éventuel point en virgule
        DataEntrer = Replace(TextEntrer.Text, ".", ",")
        If Not IsNumeric(DataEntrer) Then
            MsgBox "Entrez un chiffre"
            Exit Sub
        End If
     
        'MSHFlexGrid1.Text désignant systématiquement la dernière cellule ayant eu le focus
        'actualise la cellule modofiée
        MSHFlexGrid1.Text = Replace(DataEntrer, ",", ".")
        NumLgn = cint(MSHFlexGrid1.Tag) 'recuperatioin du N° de ligne
    	'Calcul
    	Dim sommedebit As Single, sommecrédit As Single, solde as Single
    	sommedebit = Csng(MSHFlexGrid1.TextMatrix(NumLgn, 1))
    	sommecrédit = Csng(MSHFlexGrid1.TextMatrix(NumLgn, 2))
    	solde = sommedebit - sommecrédit
    	'actualisation affichage du grid pour le solde
    	MSHFlexGrid1.TextMatrix(NumLgn, 3) = solde
     
    	'maintenant on actualise la BD
    	Dim RqSQL As String
    	Dim ClefEnrgBd As Strng
    	Dim MeTable As RecordSet
    	ClefEnregBD = MSHFlexGrid1.TextMatrix(NumLgn, 0)
    	RqSQL  = "Select * from nomdetatable Where DetailOperation = '" & ClefEnregBD & "'"
    	'ouvrir la table
    	MeTable.open(RqSQL)
    	'remplir systematiquement les champs,
    	MeTable.field("sommedébit") = sommedebit
    	MeTable.field("sommecrédit") = sommecredit
    	'et
    	MeTable.field("solde") = solde
    	'faire un Update pour l'enregistrement dans la table
    	MeTable.Uptate
     End If
    End Sub
    Pour la partie enregistrement en BDs, à toi d'écrire le code de conversation avec ta BDs
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Algérie

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2007
    Messages : 45
    Points : 27
    Points
    27
    Par défaut
    bonjour le forum
    bonjour progElect
    je te joints mon projet test pour mieux comprendre ce que je veux avoir dans la colonne solde après modification apportée
    dans la colonne débit ou celle drédit.
    le solde initial ou apport initial de la première ligne est Solde1= debit- credit (valeurs debit et credit de la ligne1)
    à la 2ème ligne du tableau le solde est Solde2=Solde1+(debit-credit) "Valeurs debit et credit de la ligne2"
    à la 3ème ligne du tableau le solde est Solde3=Solde2+(debit-credit) "Valeurs debit et credit de la ligne3"
    à la 4ème ligne du tableau le solde est Solde4=Solde3+(debit-credit) "Valeurs debit et credit de la ligne4"..
    .
    .
    .
    .
    à la nième ligne du tableau le solde est Solde(n)=Solde(n-1)+(debit-credit) "Valeurs debit et credit de la ligne(n)"

    en résumé: Nouveau Solde= Solde Précèdent +(nouveau Debit - Nouveau credit)
    Jai adapté ton code à mon projet la modification oui ça marche par contre le calcule solde non.
    Merci Beaucoup pour votre Attention.Projet Test.rar

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

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 067
    Points : 17 157
    Points
    17 157
    Par défaut
    Salut

    J'ai chargé ton projet, je regarde çà en fin de soirée sur un autre ordinateur car celui que j'utilise présentement n'a pas VB6 d’installé.

    Ne pouvant visualiser le projet dans l'instant, j'ai 4 questions qui me viennent à l'esprit:
    1 les calculs doivent être de la ligne cliqué à la dernière du grid, si j'ai bien compris ?
    2 l'utilisateur ne peut modifier que la colonne 2 et/ou 3(Débit et/ou Crédit) mais pas les colonnes 1 Détail opération et 4 Solde
    3 l’enregistrement en BDs doit être fait pour chaque changements ou bien un bouton déclenchera l'enregistrement globale ?
    4 La colonne 1 (Détail opération) est t elle la clef de la Table ?



    Edit: 21h23
    Il manque FrmSolde.frm et les OCXs, Form1.frm n'est pas utile
    Pour les OCXs je m'en passerai, mais j'ai absolument besoin du Form FrmSolde.frm
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Algérie

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2007
    Messages : 45
    Points : 27
    Points
    27
    Par défaut Projet Test avec FrmSolde
    Bonsoir ProlegElect

    - Oui les calculs des soldes doivent être de la ligne cliqué à la dernière du grid.
    - seule la modification de la colonne debit ou celle de credit affectera la colonne Solde
    - l'utilisateur peut donc apporter modification dans d'autres colonnes sans cacul donc sans incidence sur la colonne Solde
    - l’enregistrement en BDs doit être fait pour chaque changement de la ligne de modification(ligne cliquée) jusqu'à la dernière ligne du grid ou dans
    le bouton actualiser pour un enregistrement globale à toi de voir la meilleure procédure à appliquer.
    - la colonne Num est la clé de BD voir le projet pièce jointe.
    Meci beaucoup de votre attention.
    Fichiers attachés Fichiers attachés

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

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 067
    Points : 17 157
    Points
    17 157
    Par défaut
    Salut

    J'ai eu des problèmes avec mon ordinateur ayant VB6, mais voilà un code qi fonctionne chez moi
    Le Form FrmSolde, le Connexion.bas n'a pas été modifier
    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
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    '--------------------------------------------------------------------------------------------------------
    Private Sub Form_Load()
    Afficher
    TextEntrer.Height = MSHFlexGrid1.RowHeight(1) - 15
    TextEntrer.FontSize = 10: TextEntrer.FontName = "calibri"
    TextEntrer.BackColor = &HC0FFC0
    Dim T As Integer
    MSHFlexGrid1.Width = 390
    For T = 0 To MSHFlexGrid1.Cols - 1
        MSHFlexGrid1.Width = MSHFlexGrid1.Width + MSHFlexGrid1.ColWidth(T)
    Next T
     
    MSHFlexGrid1.ScrollTrack = True
    MSHFlexGrid1.Height = 8130
    MSHFlexGrid1.Left = 30: MSHFlexGrid1.Top = 30
    FrmSolde.Width = MSHFlexGrid1.Width + (MSHFlexGrid1.Left * 2) + 360
    FrmSolde.Height = MSHFlexGrid1.Height + (MSHFlexGrid1.Top * 2) + 690
    End Sub
    '--------------------------------------------------------------------------------------------------------
    Private Sub MSHFlexGrid1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
    'pour être sur que la boite entrées du texte ne soit pas visible
    TextEntrer.Left = -TextEntrer.Width
    If MSHFlexGrid1.MouseRow = 0 Then Exit Sub
    'memorisation index colonne et index ligne de la cellule cliqué
    MSHFlexGrid1.Tag = MSHFlexGrid1.MouseRow & "," & MSHFlexGrid1.MouseCol
     
    'pour definir le Left de la boite entrées du texte
    LeftText = (MSHFlexGrid1.CellLeft + MSHFlexGrid1.Left) '- 15
    'pour ajuster le width de la boite entrées du texte
    WidthText = MSHFlexGrid1.CellWidth
    'pour definir le Top de la boite entrées du texte
    TopText = (MSHFlexGrid1.CellTop + MSHFlexGrid1.Top) '- 15
    'pour remplir la boite entrées du texte avec le texte de la cellule active
    TextEntrer.Text = MSHFlexGrid1.Text
            'deplacement et recouvrement
            'de la cellule active par la boite entrées du texte
            TextEntrer.Move LeftText, TopText, WidthText
     
    Select Case MSHFlexGrid1.MouseCol
        Case 1 To 6, 8
            'donne le focus à la boite entrées du texte
            TextEntrer.SetFocus
        Case Else
            TextEntrer.Left = -TextEntrer.Width
    End Select
    End Sub
    '--------------------------------------------------------------------------------------------------------
    Private Sub MSHFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    'pour être sur que la boite entrées du texte ne soit pas visible
    TextEntrer.Left = -TextEntrer.Width
    End Sub
    '--------------------------------------------------------------------------------------------------------
    Private Sub MSHFlexGrid1_Scroll()
    'pour être sur que la boite entrées du texte ne soit pas visible
    'durant le defilement des lignes
    TextEntrer.Left = -TextEntrer.Width
    End Sub
    '--------------------------------------------------------------------------------------------------------
    Private Sub TextEntrer_KeyPress(KeyAscii As Integer)
    'gestion pour la modification d'une cellule texte du grid
    If KeyAscii = 27 Then 'abandon
        TextEntrer.Left = -TextEntrer.Width: Exit Sub
    End If
    Dim Idxs() As String
    Dim NumLgn As Integer, NumCol As Integer
    If KeyAscii = 13 Then 'validation de la modification
        TextEntrer.Left = -TextEntrer.Width
        Idxs = Split(MSHFlexGrid1.Tag, ",")
        NumLgn = CInt(Idxs(0)) 'recuperatioin du N° de ligne
        NumCol = CInt(Idxs(1)) 'recuperatioin du N° de ligne
        Dim DataEntrer As Variant
        KeyAscii = 0
        DataEntrer = Trim(TextEntrer.Text)
        Select Case NumCol
            Case 1 'date
                If Not IsDate(DataEntrer) Then
                    MsgBox "Entrez une date valide"
                    Exit Sub
                End If
                MSHFlexGrid1.Text = DataEntrer
                'enregistrer juste le champ modifié dans la BDs
                'A FAIRE
                Enregistre_Champs NumLgn, NumCol
     
            Case 5, 6
                'VB calcul avec le separateur decimal ,(virgule) donc transforme l’éventuel point en virgule
                DataEntrer = Replace(TextEntrer.Text, ".", ",")
                If DataEntrer = "" Then DataEntrer = 0
                If Not IsNumeric(DataEntrer) Then
                    MsgBox "Entrez un chiffre"
                    Exit Sub
                End If
                 'actualise la cellule modofiée
                MSHFlexGrid1.Text = Replace(DataEntrer, ",", ".")
                Calcul_Solde NumLgn ' cela a semble OK
                'maintenant on actualise la BD
                actualiseBDs NumLgn, MSHFlexGrid1.Rows
     
            Case 2 To 4, 8
                MSHFlexGrid1.Text = DataEntrer
                'enregistrer juste le champ modifié dans la BDs
                'A FAIRE
                Enregistre_Champs NumLgn, NumCol
        End Select
    End If
    End Sub
    Sub Enregistre_Champs(NumLgn As Integer, NumCol As Integer)
        Dim NomChamps As String
        Call ConnectDB
        Select Case NumCol
            Case 1: NomChamps = "DJour"
            Case 2: NomChamps = "Categorie"
            Case 3: NomChamps = "SCategorie"
            Case 4: NomChamps = "Detail"
            Case 8: NomChamps = "Financier"
        End Select
     
        Set RsR = New ADODB.Recordset
        SQLR = "Select " & NomChamps & " From Depenses where Num = " & NumLgn 'car Num est la clé de la base
        RsR.Open SQLR, Cnx, adOpenStatic, adLockOptimistic, adCmdText
        RsR.MoveFirst
        RsR.Fields(NomChamps) = MSHFlexGrid1.TextMatrix(NumLgn, NumCol)
        RsR.Update
        DoEvents
        RsR.Close: Set RsR = Nothing
        Cnx.Close: Set Cnx = Nothing
     
    End Sub
    '---------------------------------------------------------------------------------------------------------
    Sub actualiseBDs(NumLgn As Integer, NbrLgn As Integer)
        Dim T As Integer, SQLR As String
        Call ConnectDB
        Set RsR = New ADODB.Recordset
        SQLR = "Select * From Depenses where Num >= " & NumLgn & " Order by Num" 'car Num est la clé de la base
        RsR.Open SQLR, Cnx, adOpenStatic, adLockOptimistic, adCmdText
        RsR.MoveFirst
        For T = NumLgn To NbrLgn - 1
                RsR.Fields("DJour") = MSHFlexGrid1.TextMatrix(T, 1)
                RsR.Fields("Categorie") = MSHFlexGrid1.TextMatrix(T, 2)
                RsR.Fields("SCategorie") = MSHFlexGrid1.TextMatrix(T, 3)
                RsR.Fields("Detail") = MSHFlexGrid1.TextMatrix(T, 4)
                RsR.Fields("Debit") = MSHFlexGrid1.TextMatrix(T, 5)
                RsR.Fields("Credit") = MSHFlexGrid1.TextMatrix(T, 6)
                RsR.Fields("Solde") = MSHFlexGrid1.TextMatrix(T, 7)
                RsR.Fields("Financier") = MSHFlexGrid1.TextMatrix(T, 8)
                RsR.Update
                DoEvents
            If T <> NbrLgn - 1 Then RsR.MoveNext
        Next T
        RsR.Close: Set RsR = Nothing
        Cnx.Close: Set Cnx = Nothing
    End Sub
    '---------------------------------------------------------------------------------------------------------
    Sub Calcul_Solde(LgnEnCour As Integer)
        Dim i As Integer
        'Dim solde As Long
        'colonne 5=Debit , 6=Credit, 7=Solde
        Dim sommedebit As Single, sommecredit As Single, PrecedentSolde As Single, solde
        For i = LgnEnCour To MSHFlexGrid1.Rows - 1
            sommedebit = CSng(Replace(MSHFlexGrid1.TextMatrix(i, 5), ".", ","))
            sommecredit = CSng(Replace(MSHFlexGrid1.TextMatrix(i, 6), ".", ","))
            If i = 1 Then
                'solde de la première ligne ou solde initiale = debit-credit
                solde = sommedebit - sommecredit
                Else
                'Nouveau solde = solde précedent+(debit-credit)
                PrecedentSolde = CSng(Replace(MSHFlexGrid1.TextMatrix(i - 1, 7), ".", ","))
                solde = PrecedentSolde + (sommedebit - sommecredit)
            End If
            MSHFlexGrid1.TextMatrix(i, 7) = Replace(solde, ",", ".")
        Next i
    End Sub
    '----------------------------------------------------------------------------------------------------------------------------------
    Sub Afficher()
    'On Error Resume Next
    Call ConnectDB
    Set RsR = New ADODB.Recordset
        SQLR = "Select * From Depenses Order by Num" 'car Num est la clé de la base
        RsR.Open SQLR, Cnx, adOpenStatic, adLockOptimistic, adCmdText
        RsR.MoveFirst
    'TBox(15) = "0" & RcR.RecordCount
    With MSHFlexGrid1
        .RowHeight(0) = 400
        .Clear
        .Refresh
        .Rows = RsR.RecordCount + 1
        .Cols = RsR.Fields.Count
        .FixedCols = 0
        .FixedRows = 1
        .Row = 1
        .Col = 0
        .RowSel = .Rows - 1
        .ColSel = .Cols - 1
        .Clip = RsR.GetString(adClipString, -1, Chr(9), Chr(13), vbNullString)
        .RowSel = 1
        .ColSel = 0
        .Visible = True
        .ColWidth(0) = 500: .TextMatrix(0, 0) = "Num"
        .ColWidth(1) = 1200: .TextMatrix(0, 1) = "DateJour"
        .ColWidth(2) = 1500: .TextMatrix(0, 2) = "Catégorie"
        .ColWidth(3) = 2100: .TextMatrix(0, 3) = "Sous Catégorie"
        .ColWidth(4) = 5200: .TextMatrix(0, 4) = "Détail Recette & Dépense"
        .ColWidth(5) = 1200: .TextMatrix(0, 5) = "Débit"
        .ColWidth(6) = 1200: .TextMatrix(0, 6) = "Crédit"
        .ColWidth(7) = 1200: .TextMatrix(0, 7) = "Solde"
        .ColWidth(8) = 900: .TextMatrix(0, 8) = "Financier"
        .ColAlignment(5) = flexAlignRightCenter
        .ColAlignment(6) = flexAlignRightCenter
        .ColAlignment(7) = flexAlignRightCenter
        .ColAlignment(8) = flexAlignCenterCenter
    End With
    While Not MSHFlexGrid1.RowIsVisible(MSHFlexGrid1.Rows - 1)
         MSHFlexGrid1.TopRow = MSHFlexGrid1.TopRow + 2
      Wend
    RsR.Close
    Set RsR = Nothing
    Calcul_Solde 1 ' -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- ligne a modifier *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
    End Sub
    Lors d'une modification des colonnes Debit et/ou Credit toutes les lignes (de ligne en cour à dérniere ligne du grid) sont enregistrés.
    Lors d'une modification d'une des colonnes DJour, Categorie, SCategorie, Detail ou Financier , seule le champs modifié de la ligne en cour est enregistré.
    Les colonnes Num et Solde ne sont pas modifiable.

    Bonne adaptation à ton besoin
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Algérie

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2007
    Messages : 45
    Points : 27
    Points
    27
    Par défaut
    Bonjour le forum
    Bonjour ProgElect
    Merci Beaucoup ou infiniment grand merci à toi pour le temps consacré à mon égard pour m'apporter une aide
    dans mon projet VB.
    Jai adapté ton code et ça marche très bien.
    un petit souci quand je modifie RowHeightMin dans la page de propriétés à personnaliser le textbox textEntrer apparait lors de l'affichage de FrmSolde.
    je suis sur la 2eme méthode de modification à savoir: je double click sur le grid pour charger la ligne à à modifier dans les textboxs dans un form avec un Button actualiser pour enregistrer la modification apportée si je calle je reviens à toi.Salut et bonne journée.

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

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 067
    Points : 17 157
    Points
    17 157
    Par défaut
    Salut
    Citation Envoyé par alfadz Voir le message
    ... Jai adapté ton code et ça marche très bien ...

    Citation Envoyé par alfadz Voir le message
    ... un petit souci quand je modifie RowHeightMin dans la page de propriétés à personnaliser le textbox textEntrer apparait lors de l'affichage de FrmSolde.
    Ok, ajoutes TextEntrer.Left = -TextEntrer.Width dans la Private Sub Form_Load()
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  16. #16
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Algérie

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2007
    Messages : 45
    Points : 27
    Points
    27
    Par défaut
    Salut
    c'est bon ça marche merci.
    j'ai réduit le RowheightMin à zéro donc à défaut pour mieux distinguer la hauteur de la ligne entête des autre lignes là encore
    le height du textEntrer est supérieur à celui de la ligne du grid même si TextEntrer.Height = MSHFlexGrid1.RowHeight(1) - 30 au lieu de TextEntrer.Height = MSHFlexGrid1.RowHeight(1) - 15Mais ce n'est pas un problème.

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

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 067
    Points : 17 157
    Points
    17 157
    Par défaut
    Apparemment tu tiens le bon bout, il ne te reste qu'un petit problème esthétique, pour l'essentiel ta question de départ à trouvée solution, donc il va falloir penser à utiliser le bouton en fin de discussion
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  18. #18
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Algérie

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2007
    Messages : 45
    Points : 27
    Points
    27
    Par défaut
    Merci Infiniment Prog Elect
    oui mon problème de départ est résolu.
    Bonjour Prog
    j'ai appliqué ton code sur un button Actualiser situé sur une Form(FrmModif) voir capture jointe comme suit:
    Private Sub Modif_Click()
    Set RsD = New ADODB.Recordset
    Call ConnectDB
    If TxTNbre.Caption = "" Then
    MsgBox "Vous Devez Selectionner l'Enregistrement à Modifier", vbInformation, "Visuel Basic"
    Exit Sub
    End If
    SQLD = "Select * From depenses where Num= " & TxTNbre.Caption & ""
    RsD.Open SQLD, Cnx, adOpenStatic, adLockOptimistic, adCmdText
    RsD![Djour] = TxTDate.Text
    RsD![Categorie] = TxTCategorie.Text
    RsD![SCategorie] = TxTSCategorie.Text
    RsD![Detail] = TxTDetail.Text
    If OptRecette.Value = True Then
    RsD![Debit] = TxTMontant.Text
    RsD![Credit] = 0
    Else
    RsD![Credit] = TxTMontant.Text
    RsD![Debit] = 0
    End If
    RsD![Financier] = CmbUser.Text
    RsD.Update
    'MsgBox "Parfait, L'Enregistrement est Modifier!", vbInformation, "Microsoft Visuel Basic"
    FrmSolde.Afficher
    'maintenant on actualise la BD
    FrmSolde.ActualiseBDs 1, FrmSolde.MSHFlexGrid1.Rows
    MsgBox "Parfait, L'Enregistrement est Modifier!", vbInformation, "Microsoft Visuel Basic"
    Unload Me
    End Sub
    Y a t-il une autre méthode de le faire avec requête SQl avec calcul Solde du même principe que que fait Sub Calcul_Solde(LgnEnCour As Integer) c'est àdire Solde=SoldePrécedent+(Debit-Credit)

    Merci et bonne journée.
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Mise à jour colonnes table à partir d'une table de transco
    Par Lilivienne69 dans le forum SAS Base
    Réponses: 1
    Dernier message: 09/07/2020, 08h18
  2. [XL-2013] Mise à jour colonne destination
    Par anthov dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 12/11/2015, 13h16
  3. Mise à jour colonne vide à partir d'une autre colonne
    Par Ordonnateur dans le forum Oracle
    Réponses: 2
    Dernier message: 08/11/2011, 11h32
  4. Mise à jour colonne depuis une autre
    Par Kishin dans le forum Requêtes
    Réponses: 2
    Dernier message: 18/06/2010, 15h02
  5. [access] mise à jour colonne
    Par nosdo dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 31/10/2007, 16h18

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