Vb6 et access

Résolu
cs_isien Messages postés 6 Date d'inscription mercredi 25 avril 2007 Statut Membre Dernière intervention 26 juillet 2007 - 23 juil. 2007 à 12:03
Ronaldort Messages postés 2 Date d'inscription mardi 7 août 2007 Statut Membre Dernière intervention 8 août 2007 - 8 août 2007 à 13:04
salut, g un problème lors d'un affichage de données extraites d'une bd access
Public str As String
Public var As Integer
Public rs As New ADODB.Recordset
Public cmd As New ADODB.Command
Public cn As New ADODB.Connection
cn.Mode = adModeReadWrite
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = C:\Documents and Settings\siege\Bureau\stage2007\onas97.mdb;Persist Security Info= false "
cn.Open

Private Sub Form_Load()
str = "select * from secteur "
rs.Open str, cn
Set mshfg1.DataSource = rs 'mshfg1=MSHFlexGrid
rs.Close
End Sub


le resultat ne donne que la première ligne.
merci

11 réponses

cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
23 juil. 2007 à 16:14
Salut,

En complément essaye aussi cela :

Rs.CursorLocation = adUseClient
Rs.Open Str, Cn, adOpenDynamic, adLockPessimistic

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
3
cs_isien Messages postés 6 Date d'inscription mercredi 25 avril 2007 Statut Membre Dernière intervention 26 juillet 2007
23 juil. 2007 à 16:52
Private Sub Command1_Click()
str "select * from reseau where id_sec " & mshfg1
rs.CursorLocation = adUseClient
rs.Open str, cn
Set mshfg2.DataSource = rs
rs.Close
End Sub

merci bien voilà ce ki manke "rs.CursorLocation = adUseClient"
3
cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
23 juil. 2007 à 12:09
Salut,

Regarde du côté de :

MoveLast, MoveNext, MovePrevious, MoveFisrt.....

En utilisant ton Rs :

Rs.MoveLast

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
23 juil. 2007 à 12:14
Salut, deja, c'est super dur a lire ton code.

Ensuite, pour connaitre le nombre d'enregistrement de ton recordset, tu peux faire :
Msgbox rs.RecordCount
Si tu n'as qu'un enregistrement au lieu de XXX (faut etre sur que la table secteur de stage2007\onas97.mdb contient plus d'un enregistrement), tu pourras le voir sans ton msflexgrid.

Pour la cause, peut etre est il necessaire de préciser les autres arguements de la méthode Open de ton recordset.

rs.Open str, cn , adOpenDynamic, adLockOptimistic
0

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

Posez votre question
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
23 juil. 2007 à 12:15
Salut, Exploeur, pourquoi un MoveLast ?

C'est nécessaire pour que tous les enregistrements soient pris en compte ?
0
cs_isien Messages postés 6 Date d'inscription mercredi 25 avril 2007 Statut Membre Dernière intervention 26 juillet 2007
23 juil. 2007 à 12:28
Private Sub Form_Load()
str = "select * from secteur "
rs.Open str, cn
rs.MoveFirst
If Not rs.EOF Then
Set mshfg1.DataSource = rs
End If
rs.Close
End Sub

erreur : impossible d'acceder aux donnees, les parametres de sources de donnees doivent etre incorrecte ou la fonctionnalités est peut être limitée.
de même en essayant .movelast
0
cs_isien Messages postés 6 Date d'inscription mercredi 25 avril 2007 Statut Membre Dernière intervention 26 juillet 2007
23 juil. 2007 à 12:32
msgbox rs.recordcount
> -1 alors ke g 2 lignes dans la table
0
cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
23 juil. 2007 à 13:24
Salut Nicko11,

Non, ce n'est que pour donner des "pistes" à chercher avec ces instructions, en tappand dans google, tu tombes sur des explications, qui à un moment ou à un autre, il en aura besoin....

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
23 juil. 2007 à 13:39
Ca te retourne -1 sans doute parce que, comme dans le bout de code que tu nous dnones, tu ne précises pas le curseur, et que le curseur par défaut ne supporte pas RecorCount ?

J'ai la flemme d'écrire, donc, copier/coller de ce site http://faq.vb.free.fr/index.php?question=98,

Pourquoi la propriété RecordCount de mon Recordset me retourne toujours -1 ?
C'est que tout simplement le type de curseur que vous avez choisi ne supporte pas la propriété RecordCount. Seuls les curseurs de type "static" et "keyset" permettent de connaître le nombre d'enregistrements d'un recordset. Or par défaut ADO emploie un curseur côté-serveur de type "en avant seulement" (forward only).

Molenn
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
23 juil. 2007 à 15:10
Essaies ceci:

rs.Open str, cn , adOpenDynamic, adLockOptimistic

ou encore

rs.Open str, cn , adOpenKeyset, adLockOptimistic
0
Ronaldort Messages postés 2 Date d'inscription mardi 7 août 2007 Statut Membre Dernière intervention 8 août 2007
8 août 2007 à 13:04
Une tache que j'ai cherché mais ss résultat:
quand je tape

Private Sub Form_Load()
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;data source=d:\App\CarriereK_be.mdb"



Set cmd = New ADODB.Command
With cmd
    .ActiveConnection = cn
    .CommandText = "select  Raison social from client"
    .CommandType = adCmdText
End With




Set rs = New ADODB.Recordset
rs.Open cmd, cn, adOpenKeyset, adLockOptimistic
Text9 = rs.RecordCount
While Not rs.EOF
    List1.AddItem rs(0)
    rs.MoveNext
Wend
End Sub

Le compilateur me donne le message suivant:

Erreur d'execution '3707'  Impossible de modifier la propriété ActiveConection d'un objet Recordset avec un objet Commande comme source
SVP pourriez-vous me donner des propositions ?et Merci
0
Rejoignez-nous