timetrack-pro/docs/MCP_VBA_GUIDE.md
StillHammer fe30e811a3 Initial commit - TimeTrack Pro
- 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>
2025-12-30 10:53:11 +07:00

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 |