Welcome Martha.
You would have to check the database, if the windows 3.1 is using one, to see if it was ODBC compliant. Old FoxPro and some of the others I believe can be. But probably there is not a way to get at the data directly. So I would suggest a rudimentary interface. I am assuming that the application hails from the early 90's but that they are using W98 or something newer as the OS? What you are going to want is a print to text driver, I believe their was one even with W3.1. I believe you will need to redirect an lpt port, as that is how their app would be currently printing. You would then need to pick up this text file and parse the data into your form. Hopefully you can modify the print out. If it is filling out a preprinted form then it is currently only printing the fields themselves so I would think it would be pretty flexible in where and what it prints. What would be ideal is to tweek the printout to print an XML format file. You would have to create the tags for each field, etc but I think it could be done maybe.
It may be easier to have it print a comma delimited file and have SQL get it with DTS and then create your forms to use the SQL data. How many data fields are we talking about? How much time can elapse between the data in W3.1 and on the form. If this is a daily batch or something I would go with the SQL and do one dump from the W3.1 App and then have SQL process it. This can be automated on the SQL side and probably scripted for the W3.1 app. Then the forms could be created from the new SQL data. If it is some kind of real-time, single form process you could look at the print to text(xml) and then have the form load it that way.
Check out the Database Accelerator download if you go with a SQL solution. It does most of the work for you to leverage SQL and InfoPath together.
http://www.qdabra.com/proddetail.asp?prod=QDBXL1