Its been a long time since I did any VB6 coding but here are some thoughts.
How is the database defined in program? That is, are you using an ADODB.Connection, an ODBC entry, or some other VB control?
What provider is it using?
Here is a VB script that will list off the tables in an .mdb file. It uses the Jet provider and is able to read an old address list that I had on my Win11 laptop. Change the dbPath variable to point to your .mdb and see if it works.
Be sure to use the 32 version of cscript.exe. From a command prompt run your script like this.
C:\Windows\SysWOW64\cscript.exe C:\YourScriptsFolder\AccessTest.vbs
Set objConn = CreateObject("ADODB.Connection")
Set objRecordSet = CreateObject("ADODB.Recordset")
' Replace with your database path
dbPath = "C:\Repl\AddressList.mdb"
' Open the connection
objConn.Open "Provider=Microsoft Jet 4.0 OLE DB Provider;Data Source=" & dbPath
' Open the schema to get the tables
Set objRecordSet = objConn.OpenSchema(20) ' 20 corresponds to adSchemaTables
' Loop through the tables and print their names
Do Until objRecordSet.EOF
wscript.echo objRecordSet("TABLE_TYPE") & " - " & objRecordSet("TABLE_NAME")
objRecordSet.MoveNext
Loop
' Clean up
objRecordSet.Close
objConn.Close
Set objRecordSet = Nothing
Set objConn = Nothing
In this post, the user solved his problem by doing a compact and repair.
https://stackoverflow.com/questions/44082002/ms-access-error-3078-cannot-find-table-or-query