begin process at 2012 02 13 23:21:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Base de données

 > 

ADO & DAO

 > 

Connection ADO dans VBA Excel


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Connection ADO dans VBA Excel

lundi 15 janvier 2007 à 15:37:21 | Connection ADO dans VBA Excel

Gil_

Bonjour à tous,

J'utilise une base de donnée access dans laquelle j'extrait une table AS400 que je copie dans une table ACCESS. Je voudrais faire la même chose dans Excel et c'est la que j'ai un peu de mal ... Je ne sais pas comment lui indiquer de copier les données dans une feuille Excel.

Voici le code que j'utilise actuellement :

Sub Essai()

' variables paramètres

Dim Nas As String 'variable nom de l'As400
Dim Nus As String 'Variable nom utilisateur
Dim Cus As String 'Variable Code Utilisateur

' Les trois variables suivantes vont chercher leurs valeurs dans la table " Paramètres "
Nas = "XXXXX"
Nus = "XXXXX"
Cus = "XXXXX"
bibli = XXXXX
repert = XXXXX
soc = XXXXX

' Nous lançons la connexion.
Set CnnAs400 = CreateObject("ADODB.connection")

Set CnnAs400 = CreateObject("ADODB.connection")
CnnAs400.Open "provider=IBMDA400;data source=" & Nas & "", Nus, Cus

'Set Cnndb = CurrentProject.Connection
Set RsAs400 = CreateObject("ADODB.recordset")
RsAs400.ActiveConnection = CnnAs400


' Nous créons la Requête.

query = " " & _
" select XXXXX " & _
" from " + bibli + "." + repert + "" & _
" where (XXXXX= '" + soc$ + )"

RsAs400.Open query


    Do Until RsAs400.EOF
              i = 1
For Each fld In RsAs400.Fields
    Select Case i
        Case 1
            champ1 = fld.Value
        Case 2
            champ2 = fld.Value
        Case 3
           champ3 = fld.Value
        Case 4
           champ4 = fld.Value
        Case 5
          champ5 = fld.Value
        Case 6
          champ6 = fld.Value
      
Case Else
End Select
i = i + 1
Next fld

If Rsdb.State = 0 Then

' ouverture de la table et remplissage
Rsdb.Open "Table", Cnndb, adOpenKeyset, adlockoptimistic
        End If
With Rsdb
' attribution des valeurs aux champs correspondants

.AddNew Array("XXXXX", "XXXXX", "XXXXX", "XXXX", "XXXX", "XXXX"), _
                 Array(champ1, champ2, champ3, champ4, champ5, champ6)
.Update

End With
RsAs400.MoveNext
Loop

' ferme la connexion
RsAs400.Close
Set RsAs400 = Nothing
Set Rsdb = Nothing
Set CnnAs400 = Nothing
Set Cnndb = Nothing

 

Merci d'avance

lundi 15 janvier 2007 à 16:04:07 | Re : Connection ADO dans VBA Excel

Molenn

Tu veux juste copier une extraction de ta base données dans Excel ? Ne t'embêtes pas dans ce cas à écrire du code.

Dans ta base ACCESS, tu crées juste une requête avec les éléments dont tu as besoin (si tu veux la table complète, sans ajout/modification, tu peux mêm esauter cette étape).

Et dans Excel, tu fais Menu Données\Données externe\Importer les données et tu vas chercher ta base ACCESS. L'assistant te demande quelques options (qui correspondent en fait à ta ligne "CnnAs400.Open "provider=IBMDA400;data source=" & Nas & "", Nus, Cus" en ADO et hop, l'import est effectué.

Si ta table/requête est modifiée, il te suffit d'actualiser les données à partir du Menu Données toujours.

Si tu as besoin du code, utilise l'enregistreur de macro. Tout le boulot sera mâché.

Molenn
lundi 15 janvier 2007 à 16:21:33 | Re : Connection ADO dans VBA Excel

Gil_

Astucieux ta remarque je ne connaissais pas. Mais en fait je voudrais reproduire le code sous VBA Excel de façon à n'utiliser qu'EXCEL

jeudi 18 janvier 2007 à 19:48:45 | Re : Connection ADO dans VBA Excel

Gil_

Je sais pas s'il existe une solution à mon pb, personne n'a l'air de pouvoir répondre à moins que c'est totalement incompréhensible ...


Cette discussion est classée dans : case, value, xxxxx, fld, rsas400


Répondre à ce message

Sujets en rapport avec ce message

Gestion du clavier [ par jeffcantin ] Bonjour..Bon c'est encore moi, désolé de mon état de débutant pour ceux qui lisent depuis quelques jours mes messages, mais j'ai toujours un bug avec gestion d'un intputbox [ par Tonin39 ] voila jvous explique la situationqd jouvre mon classeur je dispose de 5 feuillesDATADnTwLnTwSpecTRavec mes data que jrecup ds un dossierje crée des fe Keydown [ par JeffC1977 ] Salut à tous...J'ai un bug avec mon keydownvoici mon codePrivate Sub form_Keydown(KeyCode As Integer, Shift As Integer)    Select Case KeyCode        l'equivalent de l'instruction "break" du langage C dans vb.net [ par j_aub ] est ce que quelqu'un peu me dire l'equivalent de l'instruction "break" du langage C dans vb.net. par exemple au lieu d'avoir:Select Case p select case [ par tortuegenie ] Bonjour, je souhaite utilisé un select case qui suivant le mot ecrit dans la colonne C d'excel me permet d'effectuer différents codes.Le problème est Amélioration de code [ par Pym Corp ] Bonjour,J'ai un problème que j'ai essayé de vous résumer simplement. Je dispose d'une classe avec quelques propriétés ("Property"), nous appellerons c recherche par case et prise de ligne en référence pour transfert case par case [ par mythiac ] bonjour à tous,Je suis novice et tente de rentrer dans le vba, sur excel xp, pour mon boulot. Le but est de faire un petit gestionnaire de carburant e Temps d'exécution trop long [ par mimi_939 ] Bonjour,j'ai développé un module me permettant de gérer des alertes. Il semble bien fonctionner, le problème est qu'à l'exécution, le programme boucle


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales