ADO probleme [Résolu]

Messages postés
50
Date d'inscription
lundi 20 novembre 2000
Dernière intervention
23 janvier 2008
- - Dernière réponse : cs_carvals
Messages postés
50
Date d'inscription
lundi 20 novembre 2000
Dernière intervention
23 janvier 2008
- 17 août 2006 à 10:09
Bonjour,

J'ai dvlp une appli qui utilise access pour stocker les donnees et excel pour les calculs et userforms (saisie, mangement, etc). je me retrouve devant un demi probleme:
Voici une partie du code pour un : retrieve data

Sub RetrieveQandC()
   
    Dim cnn As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim WSOrig As Worksheet
    Dim WSTemp As Worksheet
    Dim appli As String
    Dim sSQL As String
    Dim FinalRow As Long
    Set WSOrig = ActiveSheet
   
   
    'Build a SQL
    appli = UserForm3.ComboBox1.Value
    sSQL = "SELECT  question, category, importance FROM " & appli
   
   
    ' Path to Transfers.mdb
    MyConn = ThisWorkbook.Path & Application.PathSeparator & "secuit.mdb"
   
    Set cnn = New ADODB.Connection
    With cnn
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .Open MyConn
    End With
    Set rst = New ADODB.Recordset
    rst.CursorLocation = adUseServer
    rst.Open Source:=sSQL, ActiveConnection:=cnn, _
    CursorType:=adOpenForwardOnly, LockType:=adLockOptimistic, _
    Options:=adCmdText
   
   
    ' Create the report in a new worksheet
    Set WSTemp = Worksheets("Temp")
    WSTemp.Select
    Range("B1:D65536").Clear
    
      
    ' Copy from the recordset to B2
    Range("B2").CopyFromRecordset rst
   
    ' Close the connection
    rst.Close
    cnn.Close
   
    ' Format the report
    FinalRow = Range("B65536").End(xlUp).Row
   
    ' If there were no records, then stop
    If FinalRow = 1 Then
        Application.DisplayAlerts = False
        'WSTemp.Delete
        Application.DisplayAlerts = True
        WSOrig.Activate
        MsgBox "No record"
        Exit Sub
    End If
   
   
    For i = 2 To FinalRow
 
    UserForm3.ListBox1.AddItem Worksheets("Temp").Range("B" & i).Value
    UserForm3.ListBox1.List((i - 2), 1) = Worksheets("Temp").Range("C" & i).Value
    UserForm3.ListBox1.List((i - 2), 2) = Worksheets("Temp").Range("D" & i).Value
    Next i
   
    
End Sub

Voila donc le pb:
Sur ma machine je n'ai pas besoin de definir le "Myconn" en mettant "Dim Myconn as string"
mais sur d'autre machine j'y suis oblige??? quelqu'un peut me dire pourquoi???? merci d'avance

carvals
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
3
Merci
Je risque une réponse plus qu'hypothétique...

Se pourrait-il que tu aies des macros (.xla) sur ta machine et qu'il y ait une variable MyConn déclarée  à quelque part ?

Hummm............. bon................ok............euh.............


De toutes façons, tu devrais toujours avoir le Option Explicit et
déclarer tes variables. Ça permet d'éviter ce genre de questionnement,
je pense  ¦¬)


Bonne chance en tout cas.

PS: ton code est bien écrit, bravo. C'est clair et lisible. Si tout le monde faisait comme ça...

MPi

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de cs_MPi
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
0
Merci
Salut,


Sur TA machine est ce que en haut du code tu as OPTION EXPLICIT (non je pense)


Et sur les autres machines est ce qu il y est (Oui je pense)





: Règlement
=>
:Moteur de recherche
Commenter la réponse de jrivet
Messages postés
50
Date d'inscription
lundi 20 novembre 2000
Dernière intervention
23 janvier 2008
0
Merci
Non je n'ai pas d'option explicit sur ces variables.
De plus lorque j'utilise le fichier avec ce code sur MA machine il fonctione et lorsque j'utilise le meme fichier sur une autre machine je suis oblige de definir les variables.

Les versions d'excel sont identiques sur les deux machines ainsi que les references.

carvals
Commenter la réponse de cs_carvals
Messages postés
50
Date d'inscription
lundi 20 novembre 2000
Dernière intervention
23 janvier 2008
0
Merci
Bonjour MPi,


la nuit porte conseil et je me demandais si il n'y avait pas un truc de ce genre etant donne que j'en etais pas a mon premier projet. En effet tu as entierement raison. Lors d'un premier projet il y a logntemps j'ai defini des variable ds un .Xla et comme j'utilise toujours les memes nom ca fonctionne parfaitement.


Merci de ton eclairage


carvals
Commenter la réponse de cs_carvals

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.