Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium



Visual FoxPro (VFP), and its predecessor FoxPro, is a data-centric, object-oriented, procedural, database programming language and IDE from Microsoft last released in 2007 that still has some active use due to its low cost of deployment and fairly rapid development. In 2008, Microsoft released a set of add-ons for VFP's xBase components to allow interoperability with various Microsoft technologies. It allows data processing against its native file-based data tables or database servers such as SQL Server.

Share tech news, updates, or what's on your mind.

Sign up to Post


Currently, we use a template on VFP and we get our data from a Visual FoxPro database. So, we have fields on this template directly from the database. Then, we convert this template to PDF.
Our clients use our invoicing system - what we now want is to link these invoices to a statement. So, we want to create a new field on the database and use that field on our template to store the path of the invoice linked to the statement.
When we convert this template to PDF, we want to be able to access the path as a hyperlink. So if we click on that invoice, it opens up the invoice wherever the path is pointed to.

Please assist or alternately advise on a better method. You can also email me - shamina@oficinagroup.com

Many thanks,

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Hi Experts

Could you detail what's going in  unofficial VFP patches that are still under development
and  in official VFP tools that are still supported by the community, also?

Thanks in advance!
Hi Experts

I need to use a printer DLL ( Mp2032.dll ) that  drives a printer guillotine after a ticket print.
The manufacturer gave this VB code to do the job:

Accordingly to (in Portuguese):
Manufaturer instructions

Public Declare Function AcionaGuilhotina Lib "MP2032.DLL" (ByVal Modo As Integer) As Integer Public Declare Function ComandoTX Lib "MP2032.DLL" (ByVal BufTrans As String, ByVal Flag As Integer) As Integer

'After declare the functions, to execute ComandoTX, do like that:

'To drive the guillotine
sComando = chr(27) + chr(119) 
iRetorno = ComandoTX( sComando, Len( sComando )

'or I guess, optionally

iRetorno = AcionaGuilhotina(1)

Open in new window

Could you give me a way to convert this VB printer driver to a corresponding VFP one?

Thanks in advance!
When using the following select statement empty strings are desired in columns where YEAR(dateFields) = 1900.  This works fine if the first record in a dateField column does not contain 1900, meaning we get dates where desired and empty strings where year = 1900.  If the first record does contain 1900 the entire column for all records is populated with either an empty string or a 0 or a 1.  In the screenshot you can see that, as desired, column FirstInv starts with a valid date and displays an empty string when YEAR(FirstInv) = 1900.  The issue is demonstrated in the columns Ship and SoftClose, both having first records with YEAR(Ship) and Year(SoftClose) = 1900.  The entire columns results are either empty strings, 0 or 1.  

SELECT ALLTRIM(ChildJobNum) AS JobNum, ALLTRIM(JobDesc) AS JobDesc, ;
      ALLTRIM(AccountManager) AS AcctMan, ;
      ALLTRIM(ProjectManager) AS ProjMan, ;
      ALLTRIM(DisplayType) AS DisplayType, ;
      ALLTRIM(BoothType) AS BoothType, ;
      IIF(YEAR(dtOrdered)=1900,'',DTOC(dtOrdered)) AS Ordered, ;
      IIF(YEAR(dtShip)=1900,'',DTOC(dtShip))AS Ship, ;
      IIF(YEAR(ShowEndDate)=1900,'',DTOC(ShowEndDate)) AS ShowEnd, ;
      IIF(YEAR(dtSoftClosed)=1900,'',DTOC(dtSoftClosed)) AS SoftClosed, ;
      IIF(YEAR(dtHardClosed)=1900,'',DTOC(dtHardClosed)) AS HardClosed, ;
      IIF(YEAR(dtFirstInv)=1900,'',DTOC(dtFirstInv)) AS FirstInv, ;
      ProductionLeadTime, ReturnTime, ProjectCompletedTime, NotSoftClosed, AccountingReviewTime, NotClosed, ;
      InvoicingTime AS …
with another question about my Foxpro9 installation under W10pro64 I was helped quickly on this platform and hopefully someone has the right idea about this question:
I wanted to get away from the old WinXP and ported an old VFP9 program to SQL Express 2017 in W10pro.
So far I successfully installed SQL Express 2017 and on a Lan Client the VFP9 program ist working well.
Just on the Server itself the VFP program ist working only partially meaning that all "normal" data can be accessed just the calendar which is handled by dayview.ocx gives me a blank page with an error: "SQL server not found"
I connect VFP to SQL as user "sa" via ODBC and SQL Server Native Client 11.0
Apparently the activeX plugin makes a difference if data is via LAN rather than from the local host.
Does anybody have an idea what to do about this?
I already switched off windows firewall without change.
Thanks ahead for your replies!
Hi, I need assistance with the question above. I'm developing an application for a doctor who does not want confidential patient information to be stored on Remote Desktop. The doctor wants to store the file path from the local computer on TS and whenever she wants to access the file it fetches from local computer using the path, opens on RDP but doesn't save it there - it's just for viewing purposes. If the application is accessed from another computer, the path won't be the same and therefore should throw an error.

Urgent help please.
You can also email me - shamina@oficinagroup.com
Really appreciate it.
Thank you.
Hi Experts

Could you point a way to equalize the spaces beteween the combo texts due graphical character dimensions?

Accordingly to
Making the "(nnn)" as possible more vertical aligned.

Thanks in advance
in this forum i found the below quoted post which exactly describes my problem. However the soulution given does not help in my case.
In a Foxpro9 installation under W10pro64 I need the DayView.ocx which i copied to System32 and Syswow64.
On one system the manual regsvr32 procedure works on another it does not.
Thanks for help and here the old question:

"In a command prompt I am running this line:  

C:\Windows\System32> regsvr32 C:\Windows\System32\ImageViewer2.OCX

I get the following error:

The Module "C:\Windows\System32\ImageViewer2.OCX" failed to load.
Make sure the binary is stored at the specified path or debug it to check for problems with the binary or dependent .DLL files.  
The Specified module could not be found.  

This is a new 64 bit, Win7 laptop.  The OCX file has been transferred from a 64 bit Win 7 system it succesfully installed on.  I am logged in as Administrator and running cmd as Administrator.  I have a VFP app that relies on this OCX to run. "
I have a web service pushing vfp data (oledb dataset) from server A to an asp.net app's gridview on server B.
The date fields showing up in the grid are ALL the previous date. For example, the raw data is 11/20/2017, yet the gridview will show 11/19/2017. I also tried with the asp.net app installed on a completely different server, on a different network. I get the same results.  
However, if I call the web service from server A to my asp.net dev PC, I get the proper dates showing up.
I've tried coding the webservice using both ODBC and oledb and the results are the same. Any ideas?
What is the best way to detect whether or not a VFP9 grid has the focus?

I want to be able to open a form containing several grids, each showing its column headers and one row of data, then expand a grid when it gets focus and shrink it back to its original size when it loses focus.
[Webinar] Database Backup and Recovery
LVL 11
[Webinar] Database Backup and Recovery

Does your company store data on premises, off site, in the cloud, or a combination of these? If you answered “yes”, you need a data backup recovery plan that fits each and every platform. Watch now as as Percona teaches us how to build agile data backup recovery plan.


For testing the performance of a legacy database application (.DBF files) I need to temporarily disabe SMB2 and 3 on WS 2008 R2 and WS 2016 (standard editions) and turn off opportunistic locking (Oplocks.)

I have researched it a but can’t seem to get it to work – links to some related articles below.

On the servers I think I just need to disable SMB2 since MS states SMB3 is automatically disabled when SMB2 is because they share the same stack.

What I’ve found is that the following procedure done on the server should work but it does not seem to.

1.      Reboot

2.      Show SMB1 running:
C:\ >sc query mrxsmb10
SERVICE_NAME: mrxsmb10
TYPE               : 2  FILE_SYSTEM_DRIVER
STATE              : 4  RUNNING
WIN32_EXIT_CODE    : 0  (0x0)
CHECKPOINT         : 0x0
WAIT_HINT          : 0x0

3.      Show SMB2 running
C:\ >sc query mrxsmb20
SERVICE_NAME: mrxsmb20
TYPE               : 2  FILE_SYSTEM_DRIVER
STATE              : 4  RUNNING
WIN32_EXIT_CODE    : 0  (0x0)
CHECKPOINT         : 0x0
WAIT_HINT          : 0x0

4.      Update the registry:
Registry entry: SMB2
REG_DWORD: 0 = Disabled

5.      Reboot

6.      Show that SMB2 is still running
C:\ >sc query mrxsmb20
Hello Experts,
Our customer has several applications, a few of them developed more than 20 years ago in visual basic and visual fox
they work just fine so the customer is not interested in migrating although we are pushing him to do so... and probably soon
he will in invest in these...
for the time being we are still using a four applications developed 3 in vb6 and 1 in vfp
everything has been working ok until last weekend taht we upgraded to win 10
the older app seem not to be updating when working in the network as usually
and we are experiencing some corruption in the fox indexes...

Is there any parameter in win 10 that we can use to help this...
the customer may take this a a way to push him to invest right now
and that is not the idea.... the customer has to do it in his own time and understanding..

So i would really love to find a solution for this.

Best regards,
I would like to send SMS from vfp9 programe.
I have knowledge of vfp6
I don't know how.pl. guide me.
I have an issue with something that has worked many times before, but not so much now.  I have a large database of uses of plants by native peoples of north america, 44,691 uses.  (Database is online at naeb.brit.org if you'd like to see what it's like}  It's native form is FoxPro.  I got a request from some college kids in Oregon who want to do a virtual tour of useful trees on their college campus. I said I'd help.  I got a list of all the tree species in the county in Oregon where the college is.  113 species.  I put their names (latin binomials) in a small database, named MarionORTrees.dbf.  The main listing of all the plants is titled bothitem.dbf Here's the list of commands I used. Sciname is the names of the species in Marion County.  Synthname is the latin names of all the species in the database.

USE "d:\data files\databases\synth99\MarionORTrees.DBF"
USE "d:\data files\databases\food\bothitem.DBF"
BROWSE FIELDS a.sciname,b.synthname,b.comname,b.tribe,b.use,b.descrip
BROWSE LAST FOR b.synthname#"  "

The last command should show all the relevant info for the items in the main database for trees in Marion County.  But it doesn't. I have various outcomes, some really loony, none really right.

I'm using what I believe to be the latest version of Windows 10 Pro: Build 15063

Any suggestions?
Hi Experts

Could you point how to have a gateway to credit cards/ paypal/ ... - any library for that use when using a VPF's PDV app?

Thanks in advance!
I have a DOCX with mail merge fields set up and a CSV file for the data source. If I complete the merge and save the main document, when I re-open the main document I get an error message saying that (an unknown docx filename) is a mailmerge main document. Word cannot find it's data source (correct CSV filename).
The CSV file stated in the error message exists in the path stated in the error message. I know that if running manually, I can disconnect then reconnect the data source and go on, however, this document needs to be processed from within a Visual Foxpro program using OLE automation. Unfortunately, if I attempt to process the document from within the program I get the same message about Word cannot find the data source.
I need to get this working as soon as possible using Word 2010 and Office 365. Worthy of mention is that I have many Visual Foxpro programs that successfully automated Word mail merge when we were using Word 2003.
Thanks in advance.
Is there a way to make a VFP application executable that runs fine in Windows 7 with Visual Studio 6 installed to work in Windows 10? Windows 10 does not allow to install VS 6. Windows 7 complained somewhat during the VS 6 installation, but still installed it, and the VFP executable runs fine.

Thank you.
Hello Experts!

So I'm working on converting some programs over from Inserting data into FoxPro to now inserting that same data into MS Access 2013...because lets face it FoxPro is gone.

Now comes my issue, in FoxPro I had a field set to character length of 4...in MS Access same field text set to length of 4.
However there are times I get data in the file that is longer than 4 and when importing that data into FoxPro it would just truncate the data from say 6 to 4 and insert it...however in MS Access it doesn't strip it from 6 to 4 it throws an error.

"The field is too small to accept the amount of data you attempted to add."

Is there a way to set MS Access (property of some kind) that will just truncate (ignore the length) the data if it is longer than 4?
Or do I need to change my program to pull all fields from left to right and truncate all the fields in my program?

I have Foxpro 2.6 dos run under Novell 3.12 server. I want to move it to windows server 2012r2. What I have to do to make it work multiple users?
Free Tool: SSL Checker
LVL 11
Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Hi Experts,

i need suggestion to convert .xlsx or .csv file in to .dbf format , in my machine i had installed Visual FoxPro - Access - Excel. please help me out .

Hi Guys,

Here's a beginner style question. I have never done anything in Databases nor have I worked on GUIs. We are running FoxPro 2.6 for Payroll since the boonies and want to convert to Access with a GUI .. Eventually we will get an ERP

I know how to convert dbf files to access, that is not the issue. The problem is, I do not know the process of how to start building the GUI. User accounts, Data, Printing, employee info, we have a lot of databases. I know it will be a timely process .. any ideas where I can start?

Would love some help here.. if you guys know any company that does this conversion and building of GUI in access, let me know as well.


I've got a third-party DLL file that I want to access from within VFP. The DLL file is called GIQ.DLL; the function within that is called ConvertCoordinates().

I've got a DECLARE statement that seems to work : after I've run this, when I do DISPLAY STATUS, the function andd the DLL are both reported.

But when I try to run the function, I get the error message

    Cannot load 32-bit DLL ...\giq.dll

I've tried moving the DLL into the same folder as the rest of my program.

I've tried unzipping the file afresh.

Any suggestions?
In VFP6 report I want to make same printer margins  to all printer drivers like Microsoft word & excel does.

Please make it fast, its essential.

Thanks in advance
Balaji Infocom
I want to command in dos foxpro 2.6 to remove eof mark in my csv generated thru program
I suspect the answer to this question is "Windows 10 update" like so many others I've had to deal with.

I'll describe how the problem manifests. What I'm after is a way of zeroing in on the culprit.

Took me several days to realise I had the problem. I had wrongly assumed that I was requiring VFP to perform a more arduous task than I'd anticipated.  It almost doesn't matter what the task was but I'll describe it anyway.

I was running a report involving 32k records but requiring a summed calculation based on a quantity held in the current table and a cost held in a related table.  The kind of thing we've all done a zillion times.

Some of mine can take a few minutes to run, especially if they're sucking out 2 years worth of data and performing a detailed year on year comparison, so I wasn't too perturbed when this particular report was taking longer than I expected.

But then it got ridiculous. Last night I had to leave it running while it churned through just 32k records (and only 8k in the related table) and check in from home to find it had finished about 20 minutes after I'd left. WTF?

So today I've been troubleshooting. Frequent culprit has been Zonealarm. If you don't specify certain programs as being safe, it performs a paranoid check every time you run them. But the program had been correctly tagged. Didn't fully trust that, so I uninstalled zone alarm. Rinse and repeat. Problem behaviour still there.  I should specify that it's actually Zone Alarm …


Visual FoxPro (VFP), and its predecessor FoxPro, is a data-centric, object-oriented, procedural, database programming language and IDE from Microsoft last released in 2007 that still has some active use due to its low cost of deployment and fairly rapid development. In 2008, Microsoft released a set of add-ons for VFP's xBase components to allow interoperability with various Microsoft technologies. It allows data processing against its native file-based data tables or database servers such as SQL Server.

Top Experts In