Bonjour,
Je dois remplir un combobox avec le nom des pays présents dans une table provenant de sql sever.
J'ai un exemple de code que j'ai récupéré d'une aplication qui remplit également des combobox avec des valeurs issues d'une table provenant de sql server et qui fonctionne lorsque je l'applique. Cependant lorsque je l'applique avec le nom de ma base ça ne fonctionne pas j'ai une erreur.
Voici le code :
On me renvoit une erreur "Erreur d'exécution '1004' : Erreur définie par l'application ou par l'objet".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 Private Sub UserForm_Initialize() Application.ScreenUpdating = False If Me.CBox_cedant.ListCount = 0 Then Set NewSheet = Worksheets.Add NewSheet.Name = "Pays" Dim datana As String Dim i As Integer Dim tem As String datana = "XLReE_Historical_SI" 'Récupération des pays dans une nouvelle feuille Worksheets("Pays").Range("A1").Activate With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _ "ODBC;DSN=XLReE_Historical_SI;Description=Exposure Data;UID=1rroshan;APP=Microsoft Office 2003;WSID=CORMSUI8;DATABASE=XLReE_Historical_SI;Trusted_Con" _ ), Array("nection=Yes")), Destination:=Excel.ActiveCell) .CommandText = "Select distinct COUNTRY from DETAILS" .Name = "Query EDM" .FielNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormating = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .PreserveComlumnInfo = True .Refresh BackgroundQuery:=False End With 'Ajout des pays dans la liste i = 2 tem = Range("A2").Value Do While tem <> "" CBox_cedant.AddItem (Worksheets("Cedant").Cells(i, 1).Value) i = i + 1 tem = Range("A" & i).Value Loop Application.DisplayAlerts = False Sheets("Pays").Delete End If End Sub
Je ne comprends pas pourquoi j'ai une erreur alors que j'ai juste changer le nom de datana (et la requête aussi) et les deux bases sont stockées au même endroit. Sauriez-vous pourquoi j'ai cette erreur ?
Lorsque je mets des point d'arrets le programme bloque au moment de l'instruction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _ "ODBC;DSN=XLReE_Historical_SI;Description=Exposure Data;UID=1rroshan;APP=Microsoft Office 2003;WSID=CORMSUI8;DATABASE=XLReE_Historical_SI;Trusted_Con" _ ), Array("nection=Yes")), Destination:=Excel.ActiveCell)
Merci !
Ah et mis à part ça j'ai cherché comment établir une connexion entre une BDD provenant de sql server et un classeur Excel en vba et j'avoue être complétement perdue et ne rien y comprendre entre DAO, ADO, ODBC... Auriez-vous un lien ou un livre expliquant simplement toutes les méthodes leurs différences et dans quels cas les utiliser ? Merci aussi![]()
Partager