1 pièce(s) jointe(s)
ODBC driver Excel et ajout d'un champ dans la base
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
Pièce jointe 326911
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
| 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:
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 |