ADO probleme [Résolu]

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

cs_MPi 3863 Messages postés mardi 19 mars 2002Date d'inscription 13 mars 2018 Dernière intervention - 17 août 2006 à 00:13
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_MPi
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 16 août 2006 à 17:52
0
Utile
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
cs_carvals 50 Messages postés lundi 20 novembre 2000Date d'inscription 23 janvier 2008 Dernière intervention - 16 août 2006 à 18:03
0
Utile
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
cs_carvals 50 Messages postés lundi 20 novembre 2000Date d'inscription 23 janvier 2008 Dernière intervention - 17 août 2006 à 10:09
0
Utile
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.