utilser excel comme une bdd

  • Initiateur de la discussion fahd
  • Date de début
F

fahd

Guest
voila j'ai reussi a utiliser excel comme un base de donnée, pour ceux ki étaient intéressés je pourrais leur envoyer le code , c pas hyper compliqués (un peu casse tête depuis le temps ke je travail dessus)
au fait j'arrive à faire des insert et des select, des updates aussi, par contre ce ke j'arrive pas à rajouter la notion de clé, et je trouve ca dommage, j'aimerai bien reussir a faire tourner la requete SQL suivante : "CREATE INDEX Nom_index ON Nom_table (Nom_colonne)", mais j'obtient comme message d'erreur au niveau vba : "Operation is not supported for this type of object"
donc si kelkun à une idées merci bcp
et aussi pour ceux ki prendront le temps de lire mon pbrm
 
F

fahd

Guest
merci pour l'adress, mais g du mal a y acceder est tu sur de l'adress c bien : microsoft.public.fr.excel??
sinon voila un exemple de code

Public Sub main()

Dim Maconnexion As ADODB.Connection
Dim MyRecordset As ADODB.Recordset

Dim MyQuery As String


Set Maconnexion = New ADODB.Connection

With Maconnexion
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=G:\Public REPO\FixStirParis\AssetSwap\nezar\mes programmes\baseexcel.xls;" & _
"Extended Properties=Excel 8.0;"
.CursorLocation = adUseClient
.Open
End With


'on lance la reconnaissance de la table
Set MyRecordset = Maconnexion.OpenSchema(adSchemaTables)

' on vérifie que la table ke je veux (ki est TableAnnuaire) est bien reconnu
Do While Not MyRecordset.EOF
If MyRecordset.Fields("TABLE_NAME").Value = "TableAnnuaire" Then
MsgBox "tableannuaire trouvée"
End If
MyRecordset.MoveNext
Loop
MyRecordset.Close

'c la ou se situe mon pbm je ve crée un index car la bdd excel ne le crée pas par défaud et ya aucune gestion de clé en excel, mais la commande sql "create index" ne passe pas, sachant ke les autre pas parfatement, et j'obtient le msg d'err ke g mis ds mon premier msg, ben merci de me faire un feetback, pour savoir ce ke t'en pense
MyQuery = "CREATE INDEX Index ON TableAnnuaire('Indice','Nom','Prenom')"
MyRecordset.Open MyQuery, Maconnexion
MyRecordset.Close

'je lance un select
MyQuery = "SELECT * FROM TableAnnuaire"
MyRecordset.Open MyQuery, Maconnexion

'j'affiche les valeurs récupérée
Do While Not MyRecordset.EOF
MsgBox MyRecordset("Nom") & " " & MyRecordset("Prenom") & " voila."
MyRecordset.MoveNext
Loop

MyRecordset.Close


'je lance un insert
MyQuery = "INSERT INTO TableAnnuaire ([Indice],[Nom],[Prenom]) VALUES ('12','toto22','toto22')"
MyRecordset.Open MyQuery, Maconnexion

Set MyRecordset = Nothing


Maconnexion.Close


End Sub
 

Discussions similaires

F
Réponses
2
Affichages
838
F

Membres actuellement en ligne

Statistiques des forums

Discussions
314 645
Messages
2 111 536
Membres
111 184
dernier inscrit
amiko