Archiver et réinitialiser un fichier

Bonjour l'Ami,

L'idée à réaliser est comme suite :

Faire saisir les données de 3 ( ou plus ) expéditions.
Chaque expédition comporte un nombre de lignes d'enregistrements

la QUESTION est :

Une fois les données de l'expédition n° 1 sont saisies, comment faire vider la datagrid ( Tableau ) pour pouvoir saisir les données de l'expédition n° 2, puis , celles de l'expédition n° 3 , ainsi de suite.

Mon application d'apprentissage est conçue avec VB6, Access 2007,

Je vous expose les codes écrits :

Private Sub Form_Load()

PoolConnection

SQLs = "select * from TableauExpedition " & " order by NPALET asc"

If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic

Adodc1.RecordSource = SQLs
Set DataGrid1.DataSource = Adodc1

DataGrid1.AllowAddNew = False
DataGrid1.AllowUpdate = False


lblN.Caption = Adodc1.Recordset.RecordCount
Adodc1.Refresh
'-------------------------------------


TNExp = RS![EXPN]
TDateExp = RS![DATEEXP]
TTransporteur = RS![TRANSPORTEUR]
TMatriculeRemorque = RS![MATRICULEREMORQUE]


'--------------------------------------------------



SQLs = "Select * from TableauCodes " & " order by CODEPDTs asc"

If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic


Do Until RS.EOF

cmbCodePdt.AddItem (RS![CODEPDTs])

RS.MoveNext

Loop






End Sub


sur la feuille du chargement ( la feuille de saisie des données de l'expédition )

Private Sub TCltDest_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
If TCltDest = "" Then
MsgBox "Attention ! la Zone du Client ou la Destination est vide", vbCritical + vbMsgBoxRight, "Attention ! Zone Vide"
TCltDest.SetFocus
Exit Sub
End If

If Val(TCltDest) <> 0 Then
MsgBox "Attention ! cette Zone est réservée aux Clients / Destination", vbCritical + vbMsgBoxRight, "Attention ! Erreur de saisie"
TCltDest = ""
Exit Sub
TCltDest.SetFocus
End If
'--------------------------------------------------------





'-----------------------------------------------------
SQLs = "Select * from TableauExpedition where CODEPALET = " & TCodePalet & " "

If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenKeyset, adLockPessimistic


If RS.EOF Then


GoTo okaddnew

Else

MsgBox "Attention ! Ce Code de la Palette existe déjà", vbCritical + vbMsgBoxRight, "Attention ! Erreur de saisie"
TCodePalet.SetFocus
Exit Sub

End If

okaddnew:

Dim Reponse As String

Reponse = MsgBox("Voulez vous enregistrer ces nouvelles données ?", vbCritical + vbMsgBoxRight + vbYesNo, "Alors ! Que décidez vous ?")

If Reponse = vbYes Then

RS.AddNew

If Not TNExp = "" Then RS![EXPN] = TNExp
If Not TDateExp = "" Then RS![DATEEXP] = TDateExp
If Not TTransporteur = "" Then RS![TRANSPORTEUR] = TTransporteur
If Not TMatriculeRemorque = "" Then RS![MATRICULEREMORQUE] = TMatriculeRemorque
If Not lblN.Caption = "" Then RS![NPALET] = lblN.Caption
If Not TCodePalet = "" Then RS![CODEPALET] = TCodePalet
If Not cmbCodePdt = "" Then RS![CODEPDT] = cmbCodePdt
If Not TKGBrut = "" Then RS![KGBRUT] = TKGBrut
If Not TKGNet = "" Then RS![KGNET] = TKGNet
If Not TCltDest = "" Then RS![CLTDESTINATION] = TCltDest



RS.Update


RS.Close

SQLs = "Select * from TableauExpedition"

If RS.State = adStateOpen Then RS.Close
RS.Open SQLs, DB, adOpenStatic

Adodc1.RecordSource = SQLs
Set DataGrid1.DataSource = Adodc1
Adodc1.Refresh

'--------------------------------------

TCodePalet = ""
cmbCodePdt = ""
TKGBrut = ""
TKGNet = ""
TLotN = ""
TCltDest = ""



'If lblN.Caption = 0 Then
'lblN.Caption = 1
'Else
'lblN.Caption = CInt(lblN.Caption) + 1
'End If



'----------------------------------------------

TCodePalet.SetFocus

Dim Reponse1 As String
Dim Reponse2 As String


Reponse1 = MsgBox("Voulez vous saisir les données d'une autre Palettes ?", vbCritical + vbMsgBoxRight + vbYesNo, "Alors ! Que Décidez vous ?")

If Reponse1 = vbYes Then







Exit Sub


Else

Reponse2 = MsgBox("Voulez vous saisir les données d'une autre Expédition ?", vbCritical + vbMsgBoxRight + vbYesNo, "Alors ! Que Décidez vous ?")

If Reponse2 = vbYes Then

TNExp = ""
TDateExp = ""
TTransporteur = ""
TMatriculeRemorque = ""
TCodePalet = ""
cmbCodePdt = ""
TKGBrut = ""
TKGNet = ""
TCltDest = ""


TNExp.SetFocus




End If
End If
End If
End If
End Sub


Merci pour votre aide

A plus

10 réponses

  1. Bonjour,

    la QUESTION est : vous remplissez des texteboxs et combobox pour votre saisie, le datagrid n'est la que pour l'affichage de vos saisies, pourquoi voulez-vous faire une raz de l'affichage ???? Ne le remplissez pas ou ne l'affichez pas!!!!

    A+
    0
    1. Bonjour l'Ami

      La saisie se faisait par le remplissage des textebox, Evidemment l'affichage se faisait via la datagrid. Seulement pour donner, au moment de la saisie des nouvelle données d'un nouveau dossier, c'est plus commode de n'afficher que les données de ce nouveau dossier. C'est le but de ma question

      A plus
      0
      1. Re,

        Comment remplissez-vous le datagrid avec vos textebox ????
        0
        1. Re l'Ami,

          Une fois je valide les données saisies. Celles ci seront enregistrées dans la BD, et aussi pour les faire afficher spontanément sur la datagrid, j'utilise le code suivant :

          RS.Close
          
          SQLs = "Select * from TableauExpedition"
          
          If RS.State = adStateOpen Then RS.Close
          RS.Open SQLs, DB, adOpenStatic
          
          Adodc1.RecordSource = SQLs
          Set DataGrid1.DataSource = Adodc1
          Adodc1.Refresh


          A plus
          0
          1. Bonjour,

            Faites une requete select avec une donnee, d'un champ, qui n'existe pas.
            0
            1. Bonjour l'Ami,

              J'ai essayé une requête qui n'existe pas, mais sans résultat.

              J'ai écris :

              SQLs = " Select * from TableauExpedition where ESSAI = '" & TEssai & "'"
              
              adodc1.RecordSource=SQLs
              
              set DataGrid1.DataSource=Adodc1
              

              Sachant que le champs ESSAI n'existe pas

              Aussi j'ai essayé avec

              SQLs = "Select * from TableauEssai"
              
              adodc1.RecordSource = SQLs
              
              set Datagrid1.Datasource = Adodc1


              aussi, sans résultat, en sachant que le TableauEssai n'existe pas

              Je tente encore si je peux trouver l'astuce adéquate.
              Mais, votre aide me sera sûrement d'une grande utilité.

              Merci pour votre attention

              A plus l'Ami
              0
              1. Bonjour,

                li faut faire un refresh

                SQLs = " Select * from TableauExpedition where ESSAI = '00000000'"
                Adodc1.RecordSource = SQLs
                Set DataGrid1.DataSource = Adodc1
                Adodc1.Refresh
                0
                1. Bonjour l'Ami,

                  J'ai essayé votre proposition,

                  SQLs = " Select * from TableauExpedition where ESSAI = '00000000'" 
                  Adodc1.RecordSource = SQLs 
                  Set DataGrid1.DataSource = Adodc1 
                  Adodc1.Refresh


                  l'application me renvoie le message suivant

                  Adodc1
                  Aucune valeur donnée pour un ou plusieurs des paramètres requis

                  C'est un vrai casse tête ce problème

                  A plus
                  0
                  1. Re,

                    essayez avec:

                    DataGrid1.Row=0

                    voir si pas de probleme pour reremplir.
                    0
                    1. Bonjour l'Ami

                      Cette astuce :

                      Datagrid1.Row = 0 


                      n'a pas donné le résultat voulu.

                      j'ai une idée:
                      Si, pour remplir la DataGrid, il faut poser la condition que le numéro du dossier soit
                      x

                      A plus
                      0

                      Discussions similaires

                      question pix mot caché

                      7 réponses