- Structure projet complete - Schema BDD (3 tables: Clients, Projets, Temps) - 6 modules VBA documentes - Scripts SQL de creation - Plan d'implementation pour agent - Base Access avec tables creees (Phase 1 complete) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
227 lines
4.8 KiB
Markdown
227 lines
4.8 KiB
Markdown
# TimeTrack Pro - Guide MCP VBA
|
|
|
|
Comment utiliser VBA MCP Server pour construire ce projet.
|
|
|
|
## Prerequis
|
|
|
|
1. VBA MCP Server v0.6.0+ installe
|
|
2. Microsoft Access installe
|
|
3. "Trust access to VBA project object model" active dans Access
|
|
|
|
## Outils MCP Disponibles
|
|
|
|
### Pour Access
|
|
|
|
| Outil | Usage dans ce projet |
|
|
|-------|---------------------|
|
|
| `run_access_query` | Creer tables, executer SQL |
|
|
| `list_access_tables` | Verifier structure |
|
|
| `list_access_queries` | Lister requetes sauvegardees |
|
|
| `get_worksheet_data` | Lire donnees des tables |
|
|
| `set_worksheet_data` | Inserer donnees de test |
|
|
| `inject_vba` | Injecter les 6 modules VBA |
|
|
| `validate_vba` | Valider syntaxe avant injection |
|
|
| `create_backup` | Sauvegarder avant modifications |
|
|
|
|
---
|
|
|
|
## Etape 1: Creer la Base Access Vide
|
|
|
|
**Manuel:** Ouvrir Access > Nouvelle base > Enregistrer comme `TimeTrackPro.accdb`
|
|
|
|
**Emplacement:** `C:\Users\alexi\Documents\projects\timetrack-pro\db\TimeTrackPro.accdb`
|
|
|
|
---
|
|
|
|
## Etape 2: Creer les Tables
|
|
|
|
```
|
|
Utilise run_access_query pour executer chaque instruction SQL.
|
|
Les scripts sont dans: scripts/01_create_tables.sql
|
|
```
|
|
|
|
### Table tbl_Clients
|
|
|
|
```sql
|
|
CREATE TABLE tbl_Clients (
|
|
ClientID AUTOINCREMENT PRIMARY KEY,
|
|
Nom TEXT(100) NOT NULL,
|
|
Email TEXT(100),
|
|
Telephone TEXT(20),
|
|
Notes MEMO,
|
|
DateCreation DATETIME DEFAULT Now()
|
|
)
|
|
```
|
|
|
|
### Table tbl_Projets
|
|
|
|
```sql
|
|
CREATE TABLE tbl_Projets (
|
|
ProjetID AUTOINCREMENT PRIMARY KEY,
|
|
ClientID LONG NOT NULL,
|
|
Nom TEXT(100) NOT NULL,
|
|
Description MEMO,
|
|
TauxHoraire CURRENCY DEFAULT 0,
|
|
Actif YESNO DEFAULT True,
|
|
DateCreation DATETIME DEFAULT Now()
|
|
)
|
|
```
|
|
|
|
### Table tbl_Temps
|
|
|
|
```sql
|
|
CREATE TABLE tbl_Temps (
|
|
TempsID AUTOINCREMENT PRIMARY KEY,
|
|
ProjetID LONG NOT NULL,
|
|
Date DATETIME NOT NULL,
|
|
Duree DOUBLE NOT NULL,
|
|
Description MEMO,
|
|
DateCreation DATETIME DEFAULT Now()
|
|
)
|
|
```
|
|
|
|
### Verification
|
|
|
|
```
|
|
Utilise list_access_tables pour verifier que les 3 tables sont creees.
|
|
```
|
|
|
|
---
|
|
|
|
## Etape 3: Inserer Donnees de Test
|
|
|
|
```
|
|
Utilise run_access_query ou set_worksheet_data pour inserer les donnees.
|
|
Les scripts sont dans: scripts/03_sample_data.sql
|
|
```
|
|
|
|
### Exemple avec set_worksheet_data
|
|
|
|
```python
|
|
# Clients
|
|
data = [
|
|
["Acme Corporation", "contact@acme.com", "01 23 45 67 89", "Client principal"],
|
|
["Tech Solutions", "info@techsol.fr", "01 98 76 54 32", "Startup tech"],
|
|
]
|
|
columns = ["Nom", "Email", "Telephone", "Notes"]
|
|
set_worksheet_data("TimeTrackPro.accdb", "tbl_Clients", data, columns, mode="append")
|
|
```
|
|
|
|
---
|
|
|
|
## Etape 4: Injecter les Modules VBA
|
|
|
|
```
|
|
Utilise inject_vba pour chaque module.
|
|
Le code complet est dans: VBA_MODULES.md
|
|
```
|
|
|
|
### Ordre d'injection recommande
|
|
|
|
1. `mod_Config` - Constantes et parametres
|
|
2. `mod_Utils` - Fonctions utilitaires
|
|
3. `mod_DataAccess` - CRUD donnees
|
|
4. `mod_Calculs` - Fonctions de calcul
|
|
5. `mod_Navigation` - Navigation formulaires
|
|
6. `mod_Export` - Export PDF/Excel
|
|
|
|
### Exemple
|
|
|
|
```
|
|
inject_vba("TimeTrackPro.accdb", "mod_Config", "<code du module>")
|
|
```
|
|
|
|
### Validation avant injection
|
|
|
|
```
|
|
validate_vba("<code>", file_type="access")
|
|
```
|
|
|
|
---
|
|
|
|
## Etape 5: Verifier l'Installation
|
|
|
|
### Lister les modules
|
|
|
|
```
|
|
Utilise la session manager pour lister les VBComponents.
|
|
```
|
|
|
|
### Tester une fonction
|
|
|
|
```sql
|
|
-- Via run_access_query
|
|
SELECT * FROM tbl_Clients
|
|
```
|
|
|
|
---
|
|
|
|
## Commandes Frequentes
|
|
|
|
### Voir les tables
|
|
|
|
```
|
|
list_access_tables("db/TimeTrackPro.accdb")
|
|
```
|
|
|
|
### Lire des donnees
|
|
|
|
```
|
|
get_worksheet_data("db/TimeTrackPro.accdb", "tbl_Clients")
|
|
```
|
|
|
|
### Executer SQL
|
|
|
|
```
|
|
run_access_query("db/TimeTrackPro.accdb", sql="SELECT * FROM tbl_Temps WHERE Date > #2025-01-01#")
|
|
```
|
|
|
|
### Ajouter une entree de temps
|
|
|
|
```
|
|
run_access_query("db/TimeTrackPro.accdb", sql="INSERT INTO tbl_Temps (ProjetID, Date, Duree, Description) VALUES (1, #2025-01-15#, 3.5, 'Travail effectue')")
|
|
```
|
|
|
|
### Sauvegarder avant modification
|
|
|
|
```
|
|
create_backup("db/TimeTrackPro.accdb")
|
|
```
|
|
|
|
---
|
|
|
|
## Limitations Connues
|
|
|
|
| Limitation | Workaround |
|
|
|------------|------------|
|
|
| Formulaires Access | Creer manuellement dans Access UI |
|
|
| Rapports Access | Creer manuellement dans Access UI |
|
|
| run_macro Access | Utiliser inject_vba + SQL direct |
|
|
| list_modules .accdb | Utiliser session manager COM |
|
|
|
|
---
|
|
|
|
## Workflow Complet
|
|
|
|
```
|
|
1. create_backup → Sauvegarde
|
|
2. run_access_query → CREATE TABLE (x3)
|
|
3. list_access_tables → Verification
|
|
4. set_worksheet_data → Donnees test
|
|
5. validate_vba → Valider code
|
|
6. inject_vba → Injecter modules (x6)
|
|
7. get_worksheet_data → Verification finale
|
|
```
|
|
|
|
---
|
|
|
|
## Fichiers de Reference
|
|
|
|
| Fichier | Contenu |
|
|
|---------|---------|
|
|
| `scripts/01_create_tables.sql` | SQL creation tables |
|
|
| `scripts/02_create_queries.sql` | Requetes sauvegardees |
|
|
| `scripts/03_sample_data.sql` | Donnees de test |
|
|
| `VBA_MODULES.md` | Code VBA complet |
|
|
| `DATABASE.md` | Schema detaille |
|