I hope that this question is not out of place here. I have an access 2007 database for which I made a perfectly functioning simple "front end" program in VB6. That was back in XP or Vista days. I hadn't used it since the switch to Windows 7, and when I did, it seemed to work just fine for the first few tries, but NOW it refuses to run saying it can't find an installable ISAM, then appears with all text boxes blank.
I have read everything I can find, willing to rewrite the VB6 program if necessary, but the information in books and on the Internet seems to be too old to be legitimate any more. For one thing, it all seems based on the JET engine, which I thought I understood is no longer used by Access. I studied SQL and admired it, but can't see any way to use it in VB6 programs to access the database.
Please, what is the best way to get my front end program to access the database, given modern conditions? I know that VB6 is hardly a modern app, but it is one I understand quite well, and I despair of learning another language at this late date (I'm 78!)to do such a simple task.
It seems to me that I will have to change the data control, but I am bewildered by DAO, RDO, ADO, SQL, ODBC, etc., etc.
I feel that there must be a simple way out of this jungle, if someone would point it out! Thanks.

7 Years
Discussion Span
Last Post by AndreRet

I think it might be a problem with vb6 service pack. If not sp6, this might cause the error with the access database. It seems that if you would have been using access 2000 the error refers to the aged database. It now seems that access being 2007, is the culprit again.

I would suggest you download sp6 and install that before changing the application. The other mention I found is the use of data controls and not active x objects (ADO), which should eliminate the problem.

Another thing to check is the user privileges on the access database. Does it haev admin privileges or not?

Read THIS link from MS with a link to service pack 6 as well.


Thanks for taking the time to answer and trying to help, AndreRet. I had updated VB6 to SP6 some time ago, so we can eliminate that possibility. I am using a data control. Are you saying that using ADO should solve the problem? I have tried saving the database in a couple of formats (new and old), and nothing changes. I have also set the permissions on the database to administrator, again with no result. I guess I shall go study ADO some more!


It should solve your problem according to the microsoft link above.

Once you get the hang of ADO, you will be surprised how quick things go with data and databases.;)

Some samples is -

Option Explicit

Dim oConn As ADODB.Connection
Dim rsComboList As ADODB.Recordset
Dim rsAdd As ADODB.Recordset

Private Sub LoadCombo()

Dim sConn As String, xRecCount As Integer
Set oConn = New ADODB.Connection
Set rsComboList = New ADODB.Recordset
sConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\inventory.mdb;Persist Security Info=False"
oConn.Open sConn
rsComboList.Open "SELECT Description FROM storage", oConn, adOpenKeyset, adLockOptimistic

If rsComboList.BOF = True Or rsComboList.EOF = True Then
    MsgBox "There is no stock in your database as yet. Please add stock before you can add stock count.", vbOKOnly + vbInformation, "No Data"
    Unload Me
    For xRecCount = 0 To rsComboList.RecordCount - 1
        cmbItemName.AddItem rsComboList!Description
    Next xRecCount
End If
End Sub

Solved this one myself, just as I caused it myself! Found an ancient backup and compared two versions, and soon saw that I had somehow added a data control to the subsidiary form for new entries. This was apparently what was causing the "ISAM" error. Once I removed it, it was very easy to get things working as they should. Thanks for the support.

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.