Accueil > Forum > > > > Requete select sur une table foxpro
Requete select sur une table foxpro
jeudi 1 juillet 2010 à 11:27:03 |
Requete select sur une table foxpro

GarnierFlorian
|
Bonjour à tous ! et peut être à toutes^^
Mon problème se décompose en deux parties : dans un premier temps, j'aimerais savoir qu'elle est la syntaxe pour récupérer des données d'une table foxpro via une requete select avec ADO !
Ensuite, et c'est ce qui me posera le plus problème, j'aimerais insérer les résultats de ma requète dans excel : les données sont insérées dans une feuille du classeur dans un tableau déjà construit !
Voila, toute aide est la bienvenue, j'ai déjà essayé de trouvé des infos la-dessus, donc j'ai compris certaines choses, mais je me mélange un peu quand même entre les différentes méthodes: moi je veux le faire avec ADO.
Je tient à préciser que je commence tout juste avec foxpro donc j'ai quelque soucis, et puis ça fesait un moment que je n'avais pas fait de vba^^ En tout cas j'ai fait ma connexion à la table, et j'ai prévu la déconnexion, mais pour le reste je patine encore ^^
Merci d'avance !
Peace ;)
|
|
jeudi 1 juillet 2010 à 14:09:13 |
Re : Requete select sur une table foxpro

MichelAtoutFox
|
Bonjour,
je ne suis pas sur de bien comprendre ta demande:
si tu as fait ta connexion, il ne te reste qu'à faire un SELECT etc...
tu dis que tu commences tout juste avec FoxPro, mais est-ce que tu as FoxPro installé sur ta machine, ou bien tu as seulement des tables?
si tu as foxpro sur ta machine, pourquoi passer par ADO pour requèter des tables?
et enfin, comment veux-tu qu'on puisse t'aider si tu ne montre pas le code que tu as écrit jusqu'à maintenant et les messages d'erreurs éventuels?
Merci de préciser également la version de FoxPro que tu utilises
|
|
jeudi 1 juillet 2010 à 15:06:48 |
Re : Requete select sur une table foxpro

GarnierFlorian
|
Bonjour !
Merci pour ta réponse ! Je vais donc essayer de m'expliquer un peu plus clairement : tout d'abord je n'ai pas foxpro d'installé sur ma machine, en fait je souhaite effectuer des traitements sur des tables foxpro(je code en vba sous visual basic, sous excel 2007).
Pour mieux cernés la chose : je souhaite créer une petite appli qui me permettrait d'automatiser des requetes(select,insert,update,delete) sur différentes tables.
Il me semble que la version des tables foxpro est la version 7.
Sinon, il ne me reste peut-être plus qu'à faire mon select, mais je ne sais pas comment le placer dans mon code, ni par qu'elle instruction : faut-il que j'utilise un recordset ou quelque chose du genre.. J'aurais bien aimé trouver un tuto sur tout ça mais je n'ai pas trouvé :/
Sinon voici le code que j'ai pour la connexion et la déconnexion aux tables :
Code Visual Basic : Option Explicit
Dim connect_foxpro As New ADODB.Connection 'Connexion sur base Fox Pro
Dim cmd_fox As New ADODB.Command 'Commande
Dim rqt_fox As New ADODB.Recordset 'Recordset
Dim connecter_base As Boolean 'Variable permettant de savoir si la personne s'est connecté à la base Fox Pro
'FONCTION PERMETTANT DE SE CONNECTER SUR UNE BASE FOX PRO
Function Connexion(chemin_rep As String)
Dim CHEMIN As String
CHEMIN = chemin_rep
'Si renvoie Vrai , connexion réussie
'Sinon renvoie le numéro de l'erreur de connexion
On Error GoTo error_connexion:
'chemin est une constante indiquant tout simplement le répertoire de la table
connect_foxpro.ConnectionString = "DRIVER={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=" & CHEMIN
connect_foxpro.Open
connecter_base = True
Connexion = True
Exit Function
error_connexion:
Connexion = Err.Number
End Function
'FONCTION PERMETTANT DE SE DECONNECTER D'UNE BASE FOX PRO
Function Deconnexion()
'Si renvoie 1 , deconnexion réussie
'Sinon renvoie le numéro de l'erreur de deconnexion
On Error GoTo error_deconnexion:
connect_foxpro.Close
Set connect_foxpro = Nothing
connecter_base = False
Deconnexion = True
Exit Function
error_deconnexion:
Deconnexion = Err.Number
End Function
Pour le moment je n'ai que ça ! Et je ne sais pas par où commencer pour faire mes traitements. Par contre pour le sql ça pause aucun problème...
J'espère avoir été clair sinon je peux essayer de repréciser au besoin !
Peace ;)
|
|
jeudi 1 juillet 2010 à 15:09:34 |
Re : Requete select sur une table foxpro

GarnierFlorian
|
Petite précision : j'ai déclaré un recordset car j'ai commencé à essayer quelques truc mais à vrai dire je ne sais pas trop comment l'utiliser !
Peace
|
|
jeudi 1 juillet 2010 à 16:03:50 |
Re : Requete select sur une table foxpro

MichelAtoutFox
|
tu as essayé quelques trucs, lesquels???
pour le recordset, oui, évidemment, il te faut bien un objet pour recevoir les données que tu reçois par ADO.
Par contre, il vaut mieux utiliser VFPOLEDB comme provider, à la place de l'ODBC que tu utilises.
pour tout savoir (enfin presque  ), je te conseille de télécharger le VFPOLEDB provider sur le site de Microsoft, en principe le fichier d'aide doit s'installer avec.
voici un exemple tiré de l'aide de VFPOLEDB:
Code Visual Basic : CLEAR
LOCAL oConn as "adodb.connection"
LOCAL oRS as "adodb.recordset"
oConn = CREATEOBJECT('adodb.connection')
oRS = CREATEOBJECT('adodb.recordset')
cConnStrng = ;
"Provider=vfpoledb;Data Source="+HOME(2)+"northwind\northwind.dbc"
oConn.CursorLocation= 3 && adUseClient
oConn.Open(cConnStrng)
*!* Open RecordSet using keyset cursor and optimistic locking.
oRS.Open(;
"SELECT * FROM customers WHERE customerid = 'CACTU'",oConn,1,3,1)
? 'Current value:',oRS.Fields("contactname").Value
oRS.Fields("contactname").Value = "Patricio X. Simpson"
oRS.Update()
oRS.Requery()
? 'New value:',oRS.Fields("contactname").Value
oRS.Close()
oConn.Close()
|
|
jeudi 1 juillet 2010 à 16:09:05 |
Re : Requete select sur une table foxpro

GarnierFlorian
|
Merci beaucoup de m'avoir aiguiller !
Je vais regarder tout ça et je ferais un post de ce que j'ai trouvé !!
Comme ça si ça fonctionne, vous pourrez me dire si c'est bien codé, ou si j'ai des erreurs vous pourrez peut-etre m'aider à les résoudre !
Merci bien en tout cas , je m'y met !!
Peace ;)
|
|
mercredi 18 août 2010 à 14:47:41 |
Re : Requete select sur une table foxpro

GarnierFlorian
|
Bonjour !
Donc depuis le temps, j'ai pas bien avancé !
Voici mon code pour le select que je souhaitais effectuer :
Code Visual Basic :
Option Explicit
Dim targetRange As Range
Dim intColIndex As Integer
Dim nbRecords As Integer
Dim che_fic As String
Dim cnx As ADODB.Connection
Dim cmd As ADODB.Command
Dim rs As ADODB.Recordset
Sub Afficher(nomTab As String)
nbRecords = 0
'Connexion à la base
Set cnx = New Connection
'chemin est une constante indiquant tout simplement le répertoire de la table
With cnx
.ConnectionString = "Provider = vfpoledb; Data Source =" + CHEMIN + nomTab
.Open
End With
'Préparation de l'objet command
Set cmd = New ADODB.Command
Set cmd.ActiveConnection = cnx
cmd.CommandText = REQ_SELECT
'On déclare le recordset
Set rs = New ADODB.Recordset
'Exécute la requête
rs.Open cmd, CursorType:=adOpenStatic
'On sélectionne la feuille de destination
ActiveWorkbook.Sheets(NOM_FEUILLE_SELECT).Activate
'On efface l'ensemble du contenu précédent
ActiveSheet.Cells.Clear
'On vérifie que l'on a bien récupéré des enregistrements
If Not rs.EOF Then
rs.MoveFirst
Set targetRange = ActiveWorkbook.Sheets(NOM_FEUILLE_SELECT).Cells(1, 1)
' Mise en place des noms de champs comme entêtes de colonne
For intColIndex = 0 To rs.Fields.Count - 1
targetRange.Offset(0, intColIndex).Value = rs.Fields(intColIndex).Name
Next
Application.StatusBar = "Extraction des enregistrements ..."
' Vide le contenu du jeu d'enregistrements dans la feuille de calcul Excel
targetRange.Offset(1, 0).CopyFromRecordset rs
Sheets(NOM_FEUILLE_SELECT).Columns("A:Z").AutoFit
nbRecords = rs.RecordCount
MsgBox "Import de " & nbRecords & " enregistrement(s) !"
Else
MsgBox "Il n'y a aucun enregistrement correspondant.", vbInformation, "Enregistrement impossible"
End If
Application.StatusBar = ""
' Ferme le jeu d'enregistrements s'il est toujours ouvert
If CBool(rs.State And adStateOpen) Then rs.Close
'Enregistrement des modifications des feuilles excel
Application.DisplayAlerts = False
che_fic = REP_FIC + NOM_FIC
ActiveWorkbook.SaveAs che_fic
Application.DisplayAlerts = True
ActiveWorkbook.Sheets(NOM_FEUILLE_PRINCIPAL).Activate
cnx.Close
Set cnx = Nothing
Set rs = Nothing
Set targetRange = Nothing
Set cmd = Nothing
End Sub
Cela fonctionne très bien !
|
|
mercredi 18 août 2010 à 14:58:34 |
Re : Requete select sur une table foxpro

GarnierFlorian
|
Mais j'ai besoin d'une petite aide : j'ai commencé a tenter quelques petites choses pour faire un insert dans ma table.
Voici le bout de code qu j'ai :
Code Visual Basic :
Sub Insert(nomTab As String)
Dim cnx As ADODB.Connection
Dim cmd As ADODB.Command
'Connexion à la base
Set cnx = New Connection
'chemin est une constante indiquant tout simplement le répertoire de la table
With cnx
.ConnectionString = "Provider = vfpoledb; Data Source =" + CHEMIN + nomTab
.Open
End With
'Préparation de l'objet command
'Set cmd = New ADODB.Command
'Set cmd.ActiveConnection = cnx
'On exécute l'insert
cnx.Execute REQ_INSERT, adCmdText
cnx.Close
Set cnx = Nothing
Set cmd = Nothing
End Sub
Je vous donne ma requète : de toute façon, toutes les données sont inventés..
Code :
Public Const REQ_INSERT As String = "Insert Into client Values (000001,'','FLORIAN GARNIER','FR454545454','DEVELOPPEUR EN INFORMATIQUE','65 KINGSTON ROAD','KINGSTON BOULEVARD STATION','44120','VERTOU','FRA','0044 0645 445 455',00443222323232,'FRA',201200,'',11111111,'','AS24 FR','EUR','VIRT DEVISE CLIENT','BPBA','P/O BOX 44','POOLE','','Test - TEST ajout','28/08/2010','12/12/2010',0,'TEST ADR','TEST ADR2',0,0,'00/01/1900',0,'00/01/1900','00/01/1900','00/01/1900',0,'FRBARGO44',0,1,0,0,0,1,'TACTAC','',0,0,0,'00/01/1900','','cif','66 ROAD STREET','ROAD STREET','GG44 5BT','NANTES','00/01/1900',0,'F5','ffffff','ffffff','FG','00/01/1900','','FR45454545454545454ACM',0,'00/01/1900','00/01/1900','FRA',0,'',1,0007,'FRA',0,0,0007,'00/01/1900')"
Et donc, j'ai une erreur, le message étant :
Erreur d'exécution '-2147467259(80004005)':
Must specify additional parameters
Si quelqu'un voit de quoi ça peut venir je suis à l'écoute^^
Merci d'avance :)
Peace ;)
|
|
lundi 23 août 2010 à 13:53:23 |
Re : Requete select sur une table foxpro

GarnierFlorian
|
Bonjour,
Bon j'ai avancé, pour mon erreur d'avant c'est juste qu'il me manquait quelques champs à renseignés pour exécuter ma requête : j'en remplissais 78 sur 86, donc evidemment..
Mais par contre la je suis sûr de moi, et pourtant j'ai une erreur :
"Data type Mismatch"
Je voudrais savoir si ça signifit que certaines infos que j'ai renseigné ne correspondent pas au type de la colonne, ou alors si c'est tout autre chose ??
Merci d'avance, Peace !
|
|
lundi 23 août 2010 à 14:14:17 |
Re : Requete select sur une table foxpro

MichelAtoutFox
|
Bonjour,
tu as vu juste: ce message signifie que tu as une erreur de correspondance entre les données proposées et le type de colonne.
|
|
Cette discussion est classée dans : problème, table, requete, select, foxpro
Répondre à ce message
Sujets en rapport avec ce message
problème avec alter table [ par jee0404 ]
bonjour, Je travaille avec les tables de foxpro (dbf) et j'ai faite un logiciel qui changele nom des colonmes manuellement avec la command
Objet : Problème d’utilisation de « Installshield Express Visual Foxpro Limited Edition » [ par dgpi ]
Objet : Problème d’utilisation de « Installshield Express Visual Foxpro Limited Edition » Ordinateur utilisé : Portable Toshiba S1800 – 712 -
Forcer Utilisation d'un index dans une requete en VB [ par paperino ]
Bonjour,J'ai cherché sur le forum comment faire pour forcer l'utilisation d'un index.je m'explique, je vais chercher un numéro de serie (en utilisant
imprimer en foxpro [ par jee0404 ]
Bonjour, J'ai un problème , je fais une application en foxpro et j'aimerais configurer l'imprimante manuellement (c'est-à-dire par des lign
image et documentation [ par jee0404 ]
Bonjour, J'ai deux problèmes : 1er Problème : J'ai un programme de foxpro en Dos et il faut que je migre en Visualet je voudrais être de gén
Visual foxpro et access [ par steboy ]
Bonjour, Je dois récupérer dans une table DBF des données d'une table access. <P class=MsoNo
Requete Foxpro [ par spootnic22 ]
salut,j'exécute une requete sous visual foxpro6.0 mais ça marche pas:"insert into table1 select * from table2 where condition"un message d'erreur s'a
lister les champs et le type d'une table foxpro [ par AliceT ]
Bonjour, je cherche le moyen (via oledb) de lister les champs ansi que les caractéristiques d'une table foxpro.J'attends vos idéesbiz'Alice
problème driver odbc visual foxpro [ par laurent7474 ]
Bonjour,je travail avec un fichier excel, que j enregistre au format dbase 4 puis je passe par le driver visual foxpro pour travailler avec un logicie
Transfère données vers sql 2005 [ par zuddap ]
bonjour a tous voila on m'a confier la charge de transférer les donnée contenu dans un fichier table foxpro dans les table correspondante sous sql 200
Livres en rapport
|
Derniers Blogs
WINDBG / SOS / PSSCOR2 : FAILED TO LOAD DATA ACCESS DLL (MSCORDACWKS)WINDBG / SOS / PSSCOR2 : FAILED TO LOAD DATA ACCESS DLL (MSCORDACWKS) par coq
Ceux d'entre nous qui analysent des dumps d'applications .NET (notamment ceux créés via WER après un crash) en dehors de l'environnement initial ont probablement tous été confrontés au moins une fois au message suivant, à la saisie d'une commande SOS ...
Cliquez pour lire la suite de l'article par coq PERSPECTIVE 2.0 : VERSION FINALEPERSPECTIVE 2.0 : VERSION FINALE par odewit
La version 2.0 de Perspective pour WPF 4 est sortie.
Les nouveautés sont décrites dans l'annonce de la version bêta. ...
Cliquez pour lire la suite de l'article par odewit SHAREPOINT 2010 : COMPARAISON ENTRE LA VERSION 2007 ET LA VERSION 2010SHAREPOINT 2010 : COMPARAISON ENTRE LA VERSION 2007 ET LA VERSION 2010 par phil
Avant de passer en mode "rentrée" pour la reprise en main de ce blog après une longue période de vacances, j'en profite pour poster quelsues liens qui m'ont été bien utiles pour expliquer, depuis quelques mois déjà, quelles différences il existe en te...
Cliquez pour lire la suite de l'article par phil QUELQUES TRUCS INTéRESSANTS (05/09/2010)QUELQUES TRUCS INTéRESSANTS (05/09/2010) par coq
Cette fois-ci : .NET Debug / Performance Sécurité SQL Server .NET Determining if a type is defined in the .NET Framework (blog de Scott Dorman) Ha tiens, je n'avais jamais vraiment pensé à utiliser le jeton de clé publique...
Cliquez pour lire la suite de l'article par coq
Logiciels
4Videosoft HD Convertisseur (3.3.08)4VIDEOSOFT HD CONVERTISSEUR (3.3.08)Etant le meilleur HD Vidéo Convertisseur, 4Videosoft HD Convertisseur, vous pouvez regarder la vi... Cliquez pour télécharger 4Videosoft HD Convertisseur 4Videosoft Transfert iPod Mac (3.2.08)4VIDEOSOFT TRANSFERT IPOD MAC (3.2.08)4Videosoft Transfert iPod-Mac caractérise principalement à transférer les fichiers iPod vers Mac.... Cliquez pour télécharger 4Videosoft Transfert iPod Mac 4Videosoft iPad Vidéo Convertisseur pour Mac (3.1.22)4VIDEOSOFT IPAD VIDéO CONVERTISSEUR POUR MAC (3.1.22)4Videosoft iPad Vidéo Convertisseur pour Mac vous aide à convertir facilement et rapidement tous ... Cliquez pour télécharger 4Videosoft iPad Vidéo Convertisseur pour Mac 4Videosoft Transfert iPad Mac (3.2.08)4VIDEOSOFT TRANSFERT IPAD MAC (3.2.08)4Videosoft Transfert iPad-Mac est un logiciel managérial iPad professionnel qui a des fonctions i... Cliquez pour télécharger 4Videosoft Transfert iPad Mac 4Videosoft Transfert iPhone pour Mac (3.2.10)4VIDEOSOFT TRANSFERT IPHONE POUR MAC (3.2.10)Actuellement 4Videosoft Transfert iPhone pour Mac vous offre une solution complète à disposer les... Cliquez pour télécharger 4Videosoft Transfert iPhone pour Mac
|