SOS, URGENT

pearl - 19 juin 2001 à 17:24
 magic - 21 juin 2001 à 11:20
j'ai créé une appli VBA sous excel
En gros, l'utilisateur saisie plusieurs fiches concernant une formation donnée et l'appli édite un bilan des fiches saisies.
Il y a donc un bilan par formations, qui sont ensuite enregistrés dans un dossier a part.
Mon probleme est qu'il faut faire des requetes sur ces Bilans.
Au début, j'ai voulu transferer les données calculées de ces bilan dans une base de donnée access mais la je galère.
j'ai vu qu'excel dispose de fonction de base de donnée et de requètes mais est il possible de le faire sur différents classeurs (1 par formation)
Quelle est la meilleure solution et si je doit opter pour access, comment transférer les données de certaines celules de mon bilan vers un champs précis d'une table access.

Toute proposition sera la bien venu car la je vais bientot craquer
merci et bises à tous

2 réponses

Une bdd access serait mieux, et si c pour inserer des données tu fais un
INSERT INTO tatable
VALUES (mavaleur1,mavaleur2,mavaleur3....)

ET si c pour une mise a jour
UPDATE tatable
SET ....
WHERE ....
0
Je développe une application assez similaire, utilisant Excel pour la saisie et Access pour la gestion des fiches.
Pour moi, il est largement préférable de réaliser la partie base de données avec Access.

J'utilise une syntaxe plus lourde avec ouverture de la base, requêtes,... dans la bibliothèque DAO. Voici à titre d'exemple d'utilisation des objets:

Dim myBase As DAO.Database ' Base de données courante
Dim mySql As String
Dim myRec As DAO.Recordset ' Enregistrement courant

' Vérifier que la base de données peut effectivement être ouverte:
On Error Resume Next
Set myBase = OpenDatabase(myFile)
On Error GoTo 0

' Construire la requête d'interrogation de la base de données:mySql "SELECT * FROM " & myTable & " WHERE [" & myFld & "] " & myVal

' Interroger la base de données pour rechercher si l'objet existe :
Set myRec = myBase.OpenRecordset(mySql)

' Traiter successivement tous les enregistrements:
myRec.MoveFirst
Do While Not myRec.EOF
etc ...
myRec.moveNext
Loop

Il faut consulter l'aide pour les classes utilisées (recordset, ...) mais cela vaut le coup. Le résultat est très fiable.

Bon courage
0
Rejoignez-nous