Ajouter des données à une table SQL

cs_gorby69 Messages postés 48 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 10 février 2006 - 18 nov. 2003 à 15:34
Shivan0910 Messages postés 149 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 24 novembre 2010 - 18 nov. 2003 à 18:40
Bonjour,

Je veux importer un fichier Excel dans une base SQL.

J'arrive à récupérer les données dans le fichier Excel.
J'arrive à me connecter et à créer une table vide dans ma base mais impossible d'y placer des données: il me dit que ma base ou mon objet est en lecture.

Voici mon code:

Private Sub Form_Load()
Dim Table As Recordset

CheminEnreg = "C:\Internat.txt"

'Ouverture de la base
Conn = "ODBC;UID=sa;PWD=;SERVER=POSTE03IG2A;DATABASE=Decoupement;DRIVER={SQL server};"
Set WS = DBEngine.Workspaces(0)
Set DB = WS.OpenDatabase("", False, False, Conn)
Log ("Connexion à la base effectuée")

End Sub

Private Sub BtnOuvrir_Click()
Dim i As Integer
Dim Codes As Recordset

'Importe la feuille de prix
CDFichiers.Filter = "Fichiers Excel (*.xls)|*.xls|Tous les fichiers (*.*)|*.*"
CDFichiers.ShowOpen
Log ("Fichier Excel '" & CDFichiers.FileName & "' ouvert")
Set FeuilleExcel = GetObject(CDFichiers.FileName)
Set feuille = FeuilleExcel.Worksheets(1)

'Ajoute une nouvelle table à la BD
Set TableCodes = DB.CreateTableDef("Codes")
'Crée les champs
With TableCodes
.Fields.Append .CreateField("Destination", dbText, 30)
.Fields.Append .CreateField("Code", dbLong)
End With

'Ajoute la table dans SQL
DB.TableDefs.Append TableCodes

Set Codes = DB.OpenRecordset("Codes", dbOpenDynaset)
i = 1
Do Until feuille.Cells(i, 1) = ""
Log (feuille.Cells(i, 1))
With Codes
.AddNew
!Destination = CStr(feuille.Cells(i, 1))
!Code = CInt(feuille.Cells(i, 2))
.Update
End With
i = i + 1
Loop
End Sub

1 réponse

Shivan0910 Messages postés 149 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 24 novembre 2010 3
18 nov. 2003 à 18:40
je pense qu'il faut que tu rafraichisses ta base de données apres la création de la table...
quand tu ouvres la base au depart, il me semble que tu ne la rafraichies pas or, quand tu fais ton recordset, il ne sait pas que la nouvelle table existe... un p'tit refresh s'impose je pense...
a verifier...

"la vitesse de la lumière est supérieure à celle du son, c'est pourquoi un imbécile parait intelligent jusqu'a ce qu'il parle !!"
0
Rejoignez-nous