Bonjour,
mon problème est plutôt simple et ma question est plus d'un ordre logique. Elle concerne vba excel et sql.
J'ai besoin d'importer des données sql dans une feuille. J'ai bien ma requête sql, qui me retourne tout ce dont j'ai besoin MAIS j'ai besoin d'inserer entre certaine des colonnes de mon recordset, d'autre colonnes : en d'autre termes, j'ai besoin de selectionner une colonne de mon recordset, de l'inserer à tel ou tel endroit de ma feuille.
Ma question est donc, comment selectionner une colonne d'un recordset et la coller où je le désire? Est-ce que j'envisage le problème de la bonne manière ou il faut procéder différement?
D'avance merci.
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
52
53
54
55
56
57
58
59 Sub sql_import_ORA() 'Requis: 'Menu: Tools/References (Microsoft ActiveX Data Objects 2.8 Library) Application.ScreenUpdating = False Application.DisplayAlerts = False On Error Resume Next Worksheets("Imports").Delete Worksheets.Add().Name = "Imports" ActiveSheet.Select = "Imports" ' '*----------------------------* '* Requête SQL * '*----------------------------* 'Declare variables Set objMyConn = New ADODB.Connection Set objMyCmd = New ADODB.Command Set rs = New ADODB.Recordset 'Open Connection objMyConn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Data Source=kofvmmssql021\sql071;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=KOL60404;Use Encryption for Data=False;Tag with Column collation when possible=False" objMyConn.Open Set objMyCmd.ActiveConnection = objMyConn objMyCmd.CommandType = adCmdText Dim sql As String sql = "select TRAN_NUMERO_SERIE,TRAN_INDICE_CANAL, MODELE,TRAN_TELEPHONE,ESI_ADRESSE" sql = sql & ",ESI_CODEPOSTAL,ESI_VILLE" sql = sql & " from METIERS.dbo.AMI_TS_PARC" sql = sql & " where MODELE like '%amph%' and modele not like '%amphresi%'" objMyCmd.CommandText = sql objMyCmd.Execute 'Open Recordset Set rs.ActiveConnection = objMyConn rs.Open objMyCmd 'Copy Data to Excel 'pour l'instant je fais comme ça, ce qui me copie tout le recordset 'ActiveSheet.Range("A2").CopyFromRecordset (rs) 'je voudrais être capable de selectionner une colonne un peu comme ça ActiveSheet.Range("A2").Value = rs!TRAN_NUMERO_SERIE.Value 'sauf que ça ne me retourne qu'une ligne 'Close Connection objMyConn.Close Set objMyConn = Nothing Set rs = Nothing End Sub
Partager