Soyez le premier à donner votre avis sur cette source.
Snippet vu 17 119 fois - Téléchargée 35 fois
Private Sub CommandButton1_Click() ' ***** DEMANDE L'ACTIVATION DU COMPOSANT MICROSOFT ACTIVEX DATA OBJECT 2.7 LIBRARY ' ***** DEPUIS MENU "OUTILS" - "RÉFÉRENCES" DE L'ÉDITEUR VISUAL BASIC Dim Cnx As New ADODB.Connection Dim Rst As New ADODB.Recordset Dim Année As String * 4 Dim Mois As String * 2 Dim Jour As String * 2 Dim AMJ As String * 8 Dim Req1 As String Dim Req2 As String Année = TextBox1 Mois = TextBox2 Jour = TextBox3 AMJ = Année & Mois & Jour ' ***** INSTRUCTIONS DE SÉLECTION DES CHAMPS ET DE JOINTURE ***** Req1 = "select d.inputdate, cu.inv_name, c.sit_name, c.sit_town, a.ct_name, a.ct_town, d.dwgbbsnum, " Req1 = Req1 & "d.esrc_file, d.rc_num, r.ps_code, r.fabweight, d.delivstart, r.cust_ref from dwgbbs as d " Req1 = Req1 & "join ref_ps as r on r.esrc_file = d.esrc_file and r.rc_num = d.rc_num and r.ps_title = d.dwgbbsnum " Req1 = Req1 & "join contract as c on c.esrc_file = d.esrc_file and c.rc_num = d.rc_num " Req1 = Req1 & "left join contradr as a on a.esrc_file = d.esrc_file and a.es_num = d.es_num and a.seq_num = r.addr_num " Req1 = Req1 & "join customer as cu on cu.cust_code = c.cust_code" ' ***** SÉLECTION SELON DATE SAISIE DANS LE FORMULAIRE ***** Req2 = "where d.esrc_file = 'cht05' and d.rc_num <> 4 and d.inputdate = " & AMJ Req1 = Req1 & " " & Req2 ' ***** OUVERTURE DE LA BASE ***** Cnx.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Initial Catalog=Favre;Data Source=Serveur-corc" ' ***** RECHERCHE DE LA DERNIÈRE CELLULE NON VIDE ***** Range("A10000").Select Selection.End(xlUp).Select ' ***** OUVERTURE DU RECORDSET ***** Rst.Open Req1, Cnx, adOpenKeyset ' ***** COPIE DU RECORDSET DEPUIS LA LIGNE SUIVANTE ***** ActiveCell.Offset(1, 0).CopyFromRecordset Rst ' ***** FERMETURE ET VIDAGE ***** Rst.Close: Set Rst = Nothing Cnx.Close: Set Cnx = Nothing Unload UserForm1 Application.ScreenUpdating = True End Sub
26 nov. 2007 à 19:26
Si c'est possible ça m'aiderait beaucoup parce que certaines de mes requêtes on un nombre de colonne variables du entre autre à des pivot tables...
J'utilise la fonction CopyFromRecordset depuis un bon bout, mais je n'arrive pas à faire quelque chose d'aussi simple.
C'est plate parce que cette fonctionnalité manquante (du moins je crois), m'oblige à créer du code lourd et non standard du côté SQL.
Voici donc un exemple de code que j'utilise dans une de mes procédure stockées afin de transférer les headers avec le reste.
19 janv. 2005 à 00:28
Pour le support de ADO par Excel, la procédure est différente selon la version d'Excel.
Pour Excel 97, le support primaire va à DAO, et il faut programmer différemment la manipulation des données que pour Excel 2000 et +
L'article microsoftien suivant compare les deux méthodes. Je laisse des lignes vides avant et après le lien
http://support.microsoft.com/default.aspx?scid=kb;fr;246335
D'autre part le numéro de version de la bibliothèque ADO, suit les numéros de version de MDAC. Sauf que je n'ai jamais essayé de savoir si le GUID de la dll changeait d'une version à l'autre.
13 janv. 2005 à 07:54
Je suis loin d'être spécialiste en ce domaine, mais si
la base de départ est un tableau Excel (comme je crois
comprendre la question), je n'utiliserai pas un recordset
mais par exemple quelquechose comme :
Cells(x, y) = Cells(a ,b)
Salutations. dp
12 janv. 2005 à 20:49
car Chez moi ca marche pas
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.