Requete Insertion dans une Base de données

Mr Capone Messages postés 21 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 19 juin 2005 - 25 janv. 2005 à 09:31
apaulux Messages postés 73 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 2 octobre 2009 - 25 janv. 2005 à 10:33
Bonjour la post que j'ai fait hier a bugger désolé...



Alors je m'explique, je cherche a récuperer des données depuis un
fichier *.txt et de les balances directement dans ma base Sql, j'ai un
debut de code, mais je bloque pas mal pour envoyer les données dans ma
table...

voici mon code



Sub extraction()



Dim chaine As String

Dim i As Integer

Dim req As String

Dim cnx As ADODB.Connection

Set cnx = New ADODB.Connection





'Chaine de connexion a la base fraflo de sql server

cnx.ConnectionString = "UID=" & "sa" & ";PWD=" & "***"
& ";" & "DRIVER={SQL Server};Server=" & "SRVATELIER" &
";Database=" & "flofra" & ";"



'ouverture de la connexion

cnx.Open



i = 0



'ouverture du fichier *.txt

Open "C:\Documents and Settings\administrateur\Bureau\essaie.txt" For Input As #1





Do While Not EOF(1)

'extrait les données du fichier et les met dans "chaine"

Input #1, chaine



'recupération de la 1ere valeur, ";" est le séparateur

zone.Text = Split(chaine, ";")(i)

i = i + 1



'début de l'insertion

cnx.BeginTrans



'requete d'insertion

req = "Insert into test (col001,col002,col003) values (oue ,' BB ',' CC ')"



'exécution de la requete

cnx.Execute req

cnx.CommitTrans



Loop



'fermeture du fichier *.txt

Close #1



'fermeture de la connexion

cnx.Close



End Sub





Mon probleme intervient quand
j'insere j'aimerait inséré les données récupéré dans une variable, ici
je les recupere dans un zone de texte, mais je n'arrive pas non plus a
balancer cette information... si quelqun peut m'aider

3 réponses

apaulux Messages postés 73 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 2 octobre 2009
25 janv. 2005 à 09:43
'PARAMETRE IMPORT : TABLE FIXE PARAMETRE coco
Sub ImportFichier_Txt()
Const pos_1= 1
Const LG_1= 5
Const pos_2= 6
Const LG_2= 30
Const pos_3= 36
Const LG_3= 30
Const pos_4= 66
Const LG_4= 60


Dim DB As DAO.Database, RS As DAO.Recordset,EnSource As Variant
Set DB = Application.CurrentDb
Set RS = DB.OpenRecordset("coco", DB_OPEN_TABLE)
Open "C:\Documents and Settings\paul\Bureau\coco.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, EnSource
RS.AddNew
RS("Code")=Mid(EnSource, pos_1,LG_1)


RS("Cont")=Mid(EnSource, pos_2,LG_2)


RS("Fonct")=Mid(EnSource, pos_3,LG_3)


RS("Adre")=Mid(EnSource, pos_4,LG_4)


RS.Update
RS.Move 0, RS.LastModified
Loop
Close #1
RS.Close
End Sub


'PARAMETRE EXPORT : TABLE FIXE PARAMETRE coco
Sub ExportFichier_Txt()
'Longueur Du Fichier= 125
Const LLG_1= 5
Const LLG_2= 30
Const LLG_3= 30
Const LLG_4= 60



Dim RS As Recordset, tdfloop As TableDef, fldLoop As Field
Set DB = OpenDatabase("C:\Documents and Settings\paul\Bureau\Comptoir.mdb", False, gnReadOnly, sConnect)
Set RS = DB.OpenRecordset("coco")


With RS
Do
For Each fldLoop In RS.Fields
longueur = Len(RS("Code'))
Nombre_de_Blanc = LLG_1 - longueur
blanc = Space * Nombre_de_Blanc
données = données "(RS("Code")) + blanc


longueur = Len(RS("Cont'))
Nombre_de_Blanc = LLG_2 - longueur
blanc = Space * Nombre_de_Blanc
données = données "(RS("Cont")) + blanc


longueur = Len(RS("Fonct'))
Nombre_de_Blanc = LLG_3 - longueur
blanc = Space * Nombre_de_Blanc
données = données "(RS("Fonct")) + blanc


longueur = Len(RS("Adre'))
Nombre_de_Blanc = LLG_4 - longueur
blanc = Space * Nombre_de_Blanc
données = données "(RS("Adre")) + blanc & Chr(13) & Chr$(10)


Next fldLoop
.MoveNext
Loop
.Close
End With



[mailto:paul.ablasou@wanadoo.fr mailto:paul.ablasou@wanadoo.fr]
0
Mr Capone Messages postés 21 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 19 juin 2005
25 janv. 2005 à 09:53
Euh, merci mais moi je doit balancer ça dans une base Sql en
ADO... De plus les valeurs que j'extrait de mon fichier texte
n'ont pas toute la même taille, et sont séparé par des ";"...

Merci quand même
0
apaulux Messages postés 73 Date d'inscription mardi 16 novembre 2004 Statut Membre Dernière intervention 2 octobre 2009
25 janv. 2005 à 10:33
'PARAMETRE IMPORT : TABLE FIXE PARAMETRE <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


C’est le principe que ce soit sur n’importe quel type de basse de donnée


Bien sur que les tables ne sont identiques


pour chaque table les champs sont délimités c’est à toi de les configurer les constants d’importation.

[mailto:paul.ablasou@wanadoo.fr mailto:paul.ablasou@wanadoo.fr]
0