begin process at 2012 02 14 06:27:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBA

 > 

Excel vers Access


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

Excel vers Access

lundi 24 juillet 2006 à 09:23:25 | Excel vers Access

therafou

Salut,

Je cherche à mettre en place une liaison d'une feuille Excel vers une base access, ce que je gère sans problème pour l'importation access vers Excel.
Mon problème se pose quand je veux envoyer des données vers access, j'ai une liste qui régulièrement se fait mettre à jour par des données supplèmentaire (ajout de ligne à la suite) donc je cherche un moyen pour mettre à jours l'ensemble du tableau avec les ajouts au passage, mais je n'ai pas vue de fonction qui permet de faire sa directement ou je l'ignore pour le moment.

Voilà les sources:
[ Lien ]

Si vous avez une solution à mon problème.

Merci d'avance.
lundi 24 juillet 2006 à 09:52:39 | Re : Excel vers Access

thierry la fronde

Membre Club

Effectivement il faut un ensemble de méthodes pour le faire. Tout dépend comment est votre application.
Je suppose que vous importez d'abord vos données d'Access vers Excel.
Que vous faites vos modification sur Excel.
Et que vous voulez faire votre mise à jour vers Access.

Si c'est bien cela, il vous faut un bout de programme VBA dans un classeur Excel.
Vous devez travaillez avec des objets ADO et OLEDB pour obtenir la liaison avec votre base Access et faire les mise à jour.  Des cours sur le VBA ACCESS  pourrait vous être utile.

Au plaisir
thierry la fronde
lundi 24 juillet 2006 à 23:26:42 | Re : Excel vers Access

MPi

Moi, je fais un peu le contraire. Je travaille à partir d'Excel et j'importe/exporte les données. Pour envoyer d'Excel vers Access, j'utilise une fonction d'Access:
DoCmd.TransferSpreadsheet

En recherchant l'aide sur TransferSpreadsheet, tu pourras peut-être trouver ton bonheur.

MPi
mardi 1 août 2006 à 09:32:34 | Re : Excel vers Access

ManuAntibes

Membre Club
Salut moi aussi j'ai le meme problème


je trouve beaucoup de poste sur "DoCmd.TransferSpreadsheet", mais rien ne m'eclaire.

Enfaite ce que je ne comprend pas , c'est "DoCmd.TransferSpreadsheet" on l'utilise coté excel ou access ?

Car dans l'aided'Excel je ne le trouve pas , par contre il existe coté acces.

Sinon sur ma feuille excel j'ai un bouton et je souhaite en cliquant sur le bouton envoyé 3 variables ( 1 date, 1 decimale, 1 numerique) qui vont s'ajouter à ma table (Stock) de ma base access.

mais toujours de la feuille excel.

Merci d'avance

MANUANTIBES [:p]
mardi 1 août 2006 à 10:20:51 | Re : Excel vers Access

thierry la fronde

Membre Club

Pour voir les fonctions spécifiques à Access (idem pour word ou Outlook) il faut ajouter la références à la bibliothèque Access dans votre code Excel. : Outils / Références et cocher la case Microsoft Accss Object Library (dans l'éditeur VBA).


Voici l'exemple de la doc pour la procédure Transférer une feuille de calcul :

Exemple

Cet exemple importe les données d'une plage spécifiée provenant du fichier Newemps.wk3 Lotus dans la table Employees Microsoft Access. Il utilise la première ligne de la feuille de calcul pour les noms des champs.

DoCmd.TransferSpreadsheet acImport, 3, _
"Employees","C:\Lotus\Newemps.wk3", True, "A1:G12"

Je conseilles quand même de voir si l'utilisation des ADO ne serait pas plus simple ?!

thierry la fronde
mardi 1 août 2006 à 13:23:19 | Re : Excel vers Access

ManuAntibes

Membre Club

Salut
J'ai suivi ton conseil et j'ai continué a fouiller sur le net

JE suis tombé sur un tuto que j'ai remi à ma sauce.


Voici le code de ma feuille excel avec un bouton dessus


Public cnx As ADODB.Connection

Sub ConnectDB(ByRef cnx As ADODB.Connection, ByVal strPath As String)
        'Définition du pilote de connexion
    cnx.Provider = "Microsoft.Jet.Oledb.4.0"
    'Définition de la chaîne de connexion
    cnx.ConnectionString = strPath
    cnx.Open
End Sub

Private Sub CommandButton1_Click() 'Ajouter un enregistrement à la table Table6_Semaine  base Access
Dim strPath As String
   
    Application.Goto Reference:="StrPath"
      strPath = ActiveCell
   ' Nous testons si le fichier est accessible
    If Len(Dir(strPath)) > 0 Then
        ' Déclaration de la variable de connexion
        Set cnx = New ADODB.Connection
       
      ' Connexion à la base
        ConnectDB cnx, strPath
    Else
        MsgBox "La base n'a pas pu être trouvée" & vbCrLf & _
                strPath & vbCrLf & _
                "n'est pas un chemin valide.", vbCritical + vbOKOnly
    End If


Dim Id_Value As Integer
Dim Num_Value, Chiffre_Value, Rayon_Value, Magasin_Value As String

Num_Value = 11      'Range("A2").Value
Chiffre_Value = 266 'Range("A2").Value
Rayon_Value = 31    'Range("A2").Value
Magasin_Value = 6   'Range("A2").Value

Dim strSQL As String
Dim SelSQL As String
Dim rst As New ADODB.Recordset

'#   Recherche le numero du dernier enregistrement pour ajouter 1 au dernier ID_Value

 SelSQL = "SELECT  Id_Sem FROM Table6_Semaine order by ID_Sem DESC " 'Tri par ordre décroissant
 rst.Open SelSQL, cnx
Id_Value = rst.Fields.Item(0).Value + 1
rst.Close

'#   Recherche s'il existe plusieurs enregistrement de la même date, Rayon et Magasin
SelSQL = "SELECT Id_Sem, Num_Sem, Rayon_Sem, Magasin_Sem FROM Table6_Semaine WHERE Num_Sem=" & Num_Value & " AND Rayon_Sem= " & Rayon_Value & " AND Magasin_Sem = " & Magasin_Value & " "  'Recherche les N° de rayon, N° de Magasin, N° de semaine
rst.Open SelSQL, cnx
If rst.BOF = False Then
rst.Close
aconfirmer = MsgBox("L'enregistrement est déja present dans la base de donnée." + Chr(10) + "Souhaitez vous l'écraser ?", vbYesNo) '"Enregistrement en double")
'#   Recupere l'action de l'utilisateur sur la boite de dialogue OUI NON
If aconfirmer = vbYes Then
strSQL = "update Table6_Semaine( Num_Sem, Chiffre_Sem, Rayon_Sem, Magasin_Sem)values('" & Num_Value & "', '" & Chiffre_Value & "', '" & Rayon_Value & "', '" & Magasin_Value & "')"
rst.Open strSQL, cnx
End If
Else
'#   s'il n'existe pas plusieurs enregistrement de la même date, Rayon et Magasin alors enregistre une new ligne
rst.Close
strSQL = "insert into Table6_Semaine(Id_Sem, Num_Sem, Chiffre_Sem, Rayon_Sem, Magasin_Sem)values('" & Id_Value & "', '" & Num_Value & "', '" & Chiffre_Value & "', '" & Rayon_Value & "', '" & Magasin_Value & "')"
rst.Open strSQL, cnx
End If


Set rst = Nothing
cnx.Close

End Sub

J'ai plusieurs problèmes dans mon code

1) Pour recupere la valeur de l'id_Valeur , je ne pense pas que ma solution soit la meilleur.
Si vous en avez de meilleur proposition je suis preneur

2) Pour l'UPDATE ca marche pas comment dois l'ecrire.


Cordialement

MANUANTIBES [:p]

mardi 1 août 2006 à 14:23:16 | Re : Excel vers Access

thierry la fronde

Membre Club
Mes connaissances SQL sont limitées mais essayez de voir en mode debug pas à pas. Vérifiez que tous vos paramètres sont correctes dans le cours de l'exécution. La connexion est-elle toujours valide ? Passez-vous bien dans le bloc IF correspondant ? Sinon pourquoi ?

thierry la fronde
mercredi 2 août 2006 à 07:15:33 | Re : Excel vers Access

ManuAntibes

Membre Club
Ok pour le mode débug pas à pas, je travail que comme ça. (lol)

Il y a que le Update qui ne se met pas à jour, sinon tous le reste fonctionne bien.

A+

MANUANTIBES [:p]
mercredi 2 août 2006 à 09:41:55 | Re : Excel vers Access

jcljay

Hi,

Petit conseil en mode debug...
strSQL = "update Table6_Semaine( Num_Sem, Chiffre_Sem, Rayon_Sem, Magasin_Sem)values('" & Num_Value & "', '" & Chiffre_Value & "', '" & Rayon_Value & "', '" & Magasin_Value & "')"

Ajoute un affichage de la chaîne SQL obtenue:
debug.print strSQL

Ensuite, on peut tester cette chaîne SQL dans la base Access (creer une nouvelle requete sans table et passer en mode SQL, copier/coller...) et laisser Access indiquer les erreurs de syntaxe.

A première vue, je dirais que le probleme peut venir des ' dans les valeurs pour des zones numériques... Aussi, il manquerait un espace Magasin_Sem)values après la parenthèse ?

JCJ
mercredi 2 août 2006 à 09:48:59 | Re : Excel vers Access

jcljay

Hi again,

Pour Therafou : As-tu tester de créer une table liée, vers ton classeur Excel ?
(Fichier/Données externes/Lier une table... type de fichiers : Mcrosoft Excel (*.xls)
Si çà marche (en fonction de la structure du fichier en question), c'est beaucoup plus simple qu'en VBA...

JCJ

1 2

Cette discussion est classée dans : problème, access, cherche, données, excel


Répondre à ce message

Sujets en rapport avec ce message

transfert de données de VBA vers ACCESS [ par pearl ] j'ai créé une application excel et je voudrais récupérer les données résultant du traitement pour les inserer automatiquement dans une Table Access.En exporter données access sous excel [ par gitan ] Je voudrais basculer à partir d'un formulaire access qui saisi 2 dates, dans un tableur excel pour griser des cases qui correspondent aux jours entre Enregistrement de données ACCESS via EXCEL [URGENT] [ par Metos ] J aimerais savoir si il est possible d ouvrir une connextion ACCESS via VBA sous excel, afin que les données saisie par l'utilisateur via un userform Enregistrer des données sous Access... Par excel .. [Important] [ par Metos ] Je desire faire un userform sous EXCEL et par une procedure VBA enregistrer les éléments saisie par l'utilisateur sous ACCESS.Merci au bord du suicide!!!! Comment créer une table dans une base de données à l'aide d'un code VB [ par velocy ] tout d'abord merci à toutes les personnes qui liront ce message!!!j'ai un énorme problème!!j'aimerais savoir comment à partir de VB, créer une base de problème avec access [ par nel ] j'ai un pti problème : je suis en train de créer un programme de gestion en Vb avec des bases de données access et je n'arrive pas a accéder a ma base help please access +VB [ par kyp ] + excel mm...bonjour je suis +/-debutant en prog,et je dois realiser un prog en VB ki accede a une base de données access,pour utiliser ces données ds Enregistrement/ouverture de fichiers Excel via Access [ par djdiabolik ] J'enregistre les données de ma feuille dans une table Access, puis j'en fait un rapport sous Excel, mais mon problème c'est de garder l'adresse du fic importation données excel vers access [ par tema ] j'aimerais savoir comment importer des donées excel vers des tables access, mais pas des colonnes entieres. Je voudrais avoir acces à des cases precis URGENT: Excel vers Access [ par ponspons ] J'ai un problème lorsque je veux transférer un fichier excel vers une base access. Quand je met une requête avec des données ça marche:sql = "INSERT I


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,640 sec (3)

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