cs_gorby69
Messages postés48Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention10 février 2006
-
18 nov. 2003 à 15:34
Shivan0910
Messages postés149Date d'inscriptionmardi 7 janvier 2003StatutMembreDernière intervention24 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
Shivan0910
Messages postés149Date d'inscriptionmardi 7 janvier 2003StatutMembreDernière intervention24 novembre 20103 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 !!"