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
[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|