Bonjour,
Je souhaiterais savoir si l'ajout d'un champ dans une table avec le driver Excel ODB peut effectivement se faire par un CREATE TABLE.
En effet, je suis obligé de construire une base de données sur Excel et non Access, je construit donc une base dans un classeur Excel. J'ai besoin de rajouter chaque mois une colonne avec un nouveau champs.
Pour cela je voulais utiliser "Alter TABLE" mais il semblerait que ca ne fonctionne pas, sur un forum , l'un des utilisateur propose d'utiliser CREATE TABLE
https://stackoverflow.com/questions/...cel-with-oledb
le probleme c'est que moi ca ne fonctionne pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Sub Add_DARonDB(ByRef MyDar As Date) Dim strr As String, tablo(), i As Long Dim rct As New ADODB.Recordset, MyVal Dim MyBase As String, MyStr As String Dim MyField 'Recuperation des champs de la table MyBase = "Base_Donnee" strr = "SELECT * FROM [" & MyBase & "$]" rct.Open strr, MyConnection, adOpenDynamic, adLockPessimistic 'nb colonnes Nb_Champs = rct.Fields.Count For Each MyField In rct.Fields If MyField.Name = MyDar Then Exit Sub If i < 8 Then MyVal = "[" & MyField.Name & "] char" ElseIf i = 8 Then MyVal = "[" & MyDar & "] float, [" & MyField.Name & "] float" Else MyVal = "[" & MyField.Name & "] float" End If ReDim Preserve tablo(i) tablo(i) = MyVal i = i + 1 Next MyField 'Jointure MyStr = Join(tablo, ", "): Set rct = Nothing 'Ajout colonne MyStr = "CREATE TABLE [Base_Donnee$] (" & MyStr & ")" rct.Open MyStr, MyConnection, adOpenDynamic, adLockPessimistic 'sup objet Set rct = Nothing End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 'Action de connection Sub ConnectMe() Dim d As Date 'Test si on est connecté If IamConnected() Then Exit Sub 'Connecter Set MyRealConnection = New ADODB.Connection With MyRealConnection .Provider = "MSDASQL" .ConnectionString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};" & "DBQ=" & Fichier & ";HDR=Yes';ReadOnly=False;" .Open End With End Sub 'Propriete de connection ADO Property Get MyConnection() As ADODB.Connection 'Si pas d'objet ==> deconnécté If MyRealConnection Is Nothing Then ConnectMe 'DisconnectMe End If Set MyConnection = MyRealConnection End Property 'fonction de test si on est connecté Function IamConnected() As Boolean If MyRealConnection Is Nothing Then IamConnected = False Exit Function End If IamConnected = True End Function 'Sub pour se deconnecter Sub DisconnectMe() If Not (MyRealConnection Is Nothing) Then MyRealConnection.Close Set MyRealConnection = Nothing End If End Sub
Partager