Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/08/2011, 17h30   #1
Futur Membre du Club
 
Pierre Bernier
Inscription : mai 2010
Messages : 41
Détails du profil
Informations personnelles :
Nom : Pierre Bernier

Informations forums :
Inscription : mai 2010
Messages : 41
Points : 19
Points : 19
Par défaut Rechercher des données et en ajouter dans fichier Access

Bonjour,

J'ai un fichier Access avec des tables dont je connais le nom (ex: T1, T2) et donc je connais les champs de chaque table (T1C1, T1C2, T2C1, T2C2). Je voudrais savoir comment charger toutes les valeurs dans de la table T1 dans un vecteur, ainsi que comment charger toutes les valeurs du champ T1C1 dans un vecteur?

Également, comment ajouter de nouvelles valeurs au champ T1C1?

PS: J'ai cherché dans les tuto et je n'ai rien trouvé pour l'instant...

Merci de m'aider
hbc87 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2011, 18h00   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
Que veux-tu faire exactement au final.

En access il n'y a pas de Vecteur.

Il y a des recorsets (qui sont des ensembles d'enregistrements structurés avec des champs), des tableaux (dim toto(10) as string) qui peuvent contenir des types primitifs (ex : string), des types définis par l'utilisateur ou des objets. Il y a aussi des collections qui sont un peu comme les tableaux mais qui n'ont pas de taille maximum fixe.

Évidement tu as aussi des tables et des requêtes.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2011, 18h04   #3
Futur Membre du Club
 
Pierre Bernier
Inscription : mai 2010
Messages : 41
Détails du profil
Informations personnelles :
Nom : Pierre Bernier

Informations forums :
Inscription : mai 2010
Messages : 41
Points : 19
Points : 19
au final je voudrais aller chercher des données dans un fichier Excel et les coller dans Access, je veux coller les données dans mes Tables et mes Champs déjà défini dans Access. (donc je ne peux pas utiliser DoCmd.TransferSpreadsheet)
hbc87 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2011, 19h49   #4
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
Tu peux peut-être simplement ouvrir ta feuille Excel comme une table liée puis faire une requête d'ajout d'enregistrement.

Sinon je ferai un bout de code qui copie les données de Excel à Access. Si tu n'en a pas beaucoup c'est assez afficace.

Ici un exemple de code qui fait cela.

Code :
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
 
    dim cheminNom as string:cheminNom="C:\TonChemin\TonExcel.xls"
 
    Const NOM_TABLE As String = "TaTable"
    const COL_TEST_DONNEES as long = 1
    const LIGNE_DATA_XLS_MIN as long = 1
    const LIGNE_DATA_XLS_MAX as long=65536
 
    'Charge les données
    Dim xls As Object: Set xls = OuvrirExcel(cheminNom, True)
 
    Dim classeur As Object: Set classeur = xls.workbooks(InfoXLS.Nom)
    classeur.Activate
 
    Dim feuille As Object: Set feuille = classeur.Worksheets("NomTaFeuille")
    feuille.Activate
 
    'Recopie les données
 
    Dim db As DAO.Database: Set db = CurrentDb
    Dim r As DAO.Recordset: Set r = db.OpenRecordset(NOM_TABLE )
    Dim f As DAO.Field
 
    Dim iLigne As Long: iLigne = LIGNE_DATA_XLS_MAX
    Dim iCol As Long
    Dim iLigneMax As Long
 
    iLigne = LIGNE_DATA_XLS_MIN
 
    Do While iLigne <= LIGNE_DATA_XLS_MAX
        feuille.cells(iLigne, COL_TEST_DONNEES).Select
 
        If feuille.cells(iLigne, COL_TEST_DONNEES) = "" Then
            Exit Do
        End If
 
        iCol = 1
 
        r.AddNew
 
        For Each f In r.Fields
 
            feuille.cells(iLigne, iCol).Select
 
            r.Fields(iCol - 1) = feuille.cells(iLigne, iCol)
 
            iCol = iCol + 1
        Next f
 
        r.Update
        iLigne = iLigne + 1
 
    Loop
 
    r.Close: Set r = Nothing
    Set db = Nothing
    xls.Quit
    Set xls = Nothing
Code :
1
2
3
4
5
6
7
8
9
10
11
Private Function OuvrirExcel(prmNomXls As String, Optional prmRetournerObjet As Boolean = False) As Object
    Dim oXls As Object: Set oXls = CreateObject("Excel.Application")
    oXls.Visible = True
    Call oXls.workbooks.Open(prmNomXls)
 
    If Not prmRetournerObjet Then
        Set oXls = Nothing
    End If
 
    Set OuvrirExcel = oXls
End Function
A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h08.


 
 
 
 
Partenaires

Hébergement Web