Affichage d'une table vide

basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008 - 1 déc. 2007 à 13:39
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 - 2 déc. 2007 à 20:42
Bonjour,

au chargementde mon programme si une table est vide, un message d'erreur s'affiche en m'indicant qu'il n'y a pas d'enregistrement dans la table (et c'est le cas)
--------------------------------
Private Sub Form_Load()
four.MoveLast
four.MoveFirst
If util.RecordCount <> 0 Then
  Call afficher
End If
Call showmee(False)
Call showtee(False)
End Sub
-------------------------------
je voulais bien que même si la table est vide, je pourrais afficher ces champ afin de les remplir à partir de mon programme en VB6.

Merci!

Le savoir est la lumière de nous tous, partageons le!

10 réponses

cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
1 déc. 2007 à 15:40
Salut,

Dans ton projet Ajout Référence projet : Microsoft ActiveX Data Objects 2.5 Library

Dim RstAdo As New ADODB.Recordset
Dim Sql As String

Sql = "SELECT * FROM TaTable"

Set RsTAdo = TaConnection.Execute(Sql)

             For Addcol = 0 To  RstAdo.Fields.Count - 1
                 MsgBox RstAdo.Fields(Addcol).Name
            Next Addcol

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
1 déc. 2007 à 15:42
Re,

Regarde ce lien, cela pourrait t'aider...qui sait...

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
1 déc. 2007 à 17:19
Ou est ce que je dois ajouter ton code stp?

Le savoir est la lumière de nous tous, partageons le!
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
1 déc. 2007 à 17:40
Lol...ben j'sais pas moi ou tu ajouter le code...C'est toi qui voit...Form_Load? command1_Click() ?

Puis tu veux afficher dans quoi exactement ?

A+
Exploreur

 Linux a un noyau, Windows un pépin

 

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

Posez votre question
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
1 déc. 2007 à 18:39
ok sur ma feuille j'ai mis des textbox pour chaque champs avec des libellés au chargement de ma feuille je dois avoir mon premier enregistrement s'il y en a sinon des champs vides!

Le savoir est la lumière de nous tous, partageons le!
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
1 déc. 2007 à 19:40
Re,

Ce n'est plus la même chose....Essaye de faire un truc du genre :

If Not Recordest.Fields("Tonchamp") = VbNullString then
          Text1.Text =  Recordest.Fields("Tonchamp")
Else
          Text1.Text = "Pas d'enregistrement"
End If

Sinon montre moi ton code de chargement de tes données...Je te répondrais plus tard, car je suis invité chez des amis....

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
2 déc. 2007 à 00:30
voici le code de chargement ou au moins la partie ou  l'erreur pointe:
Private Sub Form_Load()
four.MoveLast -- Ligne ou l'erreur pointe
four.MoveFirst
If util.RecordCount <> 0 Then
  Call afficher
End If
Call showmee(False)
Call showtee(False)
End Sub

Le savoir est la lumière de nous tous, partageons le!
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
2 déc. 2007 à 10:26
Re,

Ouais.....ça c'est la première erreur, après il y a la deuxième : Four.MoveFirst

C'est normal que tu as une erreur, car comme ta base est vide, ben, tu ne peut pas de déplacer sur le dernier enregistrement et te déplacer sur le premier puisque ta table est vide..!

Utilises-tu des contrôle ADODC, ou fais-tu une connection avec un objet connection en ADO et un objet recordset en ADO ?

Pour palier à ton problème(ce n'est pas la meilleur solution, faudrait plutôt faire tout cela avec des requêtes SQL, un recordset, cela serait beaucoup mieux), tu fais :

Private Sub Form_Load()

On Error Resume Next
four.MoveLast -- Ligne ou l'erreur pointe
four.MoveFirst
Err.Clear

If util.RecordCount <> 0 Then
  Call afficher
End If
Call showmee(False)
Call showtee(False)
End Sub

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
2 déc. 2007 à 12:42
Bonjour,
j'utilise une connection avec un objet connection en ADO et un objet recordset en ADO.

Le savoir est la lumière de nous tous, partageons le!
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
2 déc. 2007 à 20:42
Salut,

Dans ton projet Ajout Référence projet : Microsoft ActiveX Data Objects 2.5 Library

C'est un exemple à adapter dans la partie de ton code qui t'intèresses...

Private Sub Command1_Click()

Dim Cnx As New ADODB.Connection
Dim Rst As New ADODB.Recordset
Dim Sql As String
    
    ' Choix du fournisseur
     Cnx.Provider = "Microsoft.jet.OLEDB.4.0"
 
    ' chemin de la base pour la connection
     Cnx.ConnectionString = "CheminDeTaBase"
        ' Utilise App.Path 

    ' Gestion erreur
     On Error Resume Next
    
    ' Ouvre la connection à la source
     Cnx.Open
    
     ' Si erreur on ne poursuit pas la suite du code     
      If Err.Number Then MsgBox Err.Description : Err.Clear : Exit Sub

' Préparation requête 
 Sql = "SELECT * FROM TaTable"

    ' Execution requête avec paramètre recordset via CnxAdo
     Rst.CursorLocation = adUseClient
     Rst.Open Sql, Cnx, adOpenDynamic, adLockPessimistic

           ' Verife, s'il y a des enregistrements dans ta base
            If Rst.RecordCount > 0 then
                     While Not Rst.Eof
                                ' Ici ton traitement de remplissage TextBox

                                ' Passe au suivant
                                 Rst.MoveNext 

                     Wend
            Else ' Donc 0 Enregistrement
                   ' Traitement, tous tes TextBox Vide
            End If
             
End Sub

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Rejoignez-nous