ADO probleme

Résolu
cs_carvals Messages postés 50 Date d'inscription lundi 20 novembre 2000 Statut Membre Dernière intervention 23 janvier 2008 - 16 août 2006 à 17:47
cs_carvals Messages postés 50 Date d'inscription lundi 20 novembre 2000 Statut Membre 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

4 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
17 août 2006 à 00:13
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
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
16 août 2006 à 17:52
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
0
cs_carvals Messages postés 50 Date d'inscription lundi 20 novembre 2000 Statut Membre Dernière intervention 23 janvier 2008
16 août 2006 à 18:03
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
0
cs_carvals Messages postés 50 Date d'inscription lundi 20 novembre 2000 Statut Membre Dernière intervention 23 janvier 2008
17 août 2006 à 10:09
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
0
Rejoignez-nous