Archiver et réinitialiser un fichier

Fermé
mohalesage Messages postés 147 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 31 décembre 2015 - 8 juil. 2013 à 23:53
mohalesage Messages postés 147 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 31 décembre 2015 - 12 juil. 2013 à 18:21
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
A voir également:

10 réponses

f894009 Messages postés 17191 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 20 mai 2024 1 707
9 juil. 2013 à 07:29
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
mohalesage Messages postés 147 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 31 décembre 2015 1
9 juil. 2013 à 16:15
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
f894009 Messages postés 17191 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 20 mai 2024 1 707
9 juil. 2013 à 16:42
Re,

Comment remplissez-vous le datagrid avec vos textebox ????
0
mohalesage Messages postés 147 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 31 décembre 2015 1
9 juil. 2013 à 21:48
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
f894009 Messages postés 17191 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 20 mai 2024 1 707
10 juil. 2013 à 07:45
Bonjour,

Faites une requete select avec une donnee, d'un champ, qui n'existe pas.
0
mohalesage Messages postés 147 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 31 décembre 2015 1
11 juil. 2013 à 01:44
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
f894009 Messages postés 17191 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 20 mai 2024 1 707
11 juil. 2013 à 09:14
Bonjour,

li faut faire un refresh

SQLs = " Select * from TableauExpedition where ESSAI = '00000000'"
Adodc1.RecordSource = SQLs
Set DataGrid1.DataSource = Adodc1
Adodc1.Refresh
0
mohalesage Messages postés 147 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 31 décembre 2015 1
12 juil. 2013 à 01:07
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
f894009 Messages postés 17191 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 20 mai 2024 1 707
12 juil. 2013 à 08:00
Re,

essayez avec:

DataGrid1.Row=0

voir si pas de probleme pour reremplir.
0
mohalesage Messages postés 147 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 31 décembre 2015 1
12 juil. 2013 à 18:21
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