Newsgroup: it.comp.lang.visual-basic
Titolo: VB6 e database *.mdb

Ho installato VB6 in Win 10, tutto bene tranne un particolare, se lancio 
un programma dentro all'IDE, questo funziona se basato su tabelle office 
97, invece non parte e dà errore se basato su tabelle office 2000.
Come posso rimediare? Cosa manca all' installazione di VB6?
 
-- 
Gulp®
--
"Partimque figuras retulit antiquas, partim nova monstra creavit."
(La Metamorfosi - Ovidio)


Ops...dimenticavo di citare l'errore in apertura: "Intercettato errore 
dati. Impossibile trovare ISAM installabile"



 
ISAM: installable indexed sequential access method
 
È un pezzo di software (generalmente una type library tlb) che consente 
l'accesso da una determinata base dati; un po' come un driver, per 
capirci. Per quello che ne so io VB6 supporta fino ad Office 97.
 
Basta convertire i db dal formato 2k a quello 97. Access 2000 e 
successivi leggono e scrivono i formati 97, quindi -dovrebbe- essere 
tutto piuttosto semplice.
 
In tutti i casi nella KB MS c'è una documentazione infinita su queste cose.
 
 
-- 
GbC
www.gbc.uno

 Ho installato VB6 in Win 10
 
Come hai fatto?
 
-- 
Greg


In giro per la rete si trova più di qualche procedura, ma se vuoi farla 
breve segui : 
http://nuke.vbcorner.net/Home/tabid/36/language/it-IT/Default.aspx
 
 
Ma, come hai potuto leggere ho il problema dei database office 2000


 tutto piuttosto semplice.
 
Al momento della conversione di una db da access 97 a 2000 si viene 
avvertiti con un messaggio di Office che non sarà possibile tornare 
indietro.


 indietro.
 
Si, non intendevo dire di convertire ogni volta che si deve fare una 
modifica.
 
Qui ho Office 2007, ma se non erro tutti gli Office leggono e scrivono i 
db in formato 97; quindi usi il formato 97. Se devi fare delle modifiche 
con Office lo apri, modifichi e salvi; con Office 2007 (non ho qui un 
2000) non mi chiede il formato ma usa quello di default e salva 
direttamente in formato 97.
 
Ho dozzine di vecchi software in giro che funzionano in questo modo (VB6 
+ MDB 97), con utenti che operano sui db -anche- con W10 ed Office 365.
 
Diverso è se devi utilizzare caratteristiche che il formato 97 non 
supporta; in questo caso non hai alternative se non passare a qualcosa 
di più recente, visto che ciò di cui parliamo ha almeno 16 anni.
 
 
-- 
GbC
www.gbc.uno

 Basta convertire i db dal formato 2k a quello 97.
 
Visto che non riesco a far funzionare i db non-97 e che non riesco a 
venirne a capo, mi rassegnerei anche ad una conversione in downgrade.
Mi spiegheresti la procedura per favore?



 
Ah non lo so. Non ho mai avuto necessità di fare quello che chiedi. 
Sapendo che VB6 non supporta altro che 97 non ho mai provato ad usare 
versioni successive, quindi non ho mai dovuto effettuare conversioni. Da 
quello che ricordo le versioni di Office successive alla 2003 non 
possono creare (leggere e scrivere si) file in versione 97. La funzione 
di conversione dovrebbe essere nel pulsante office > gestisci > 
converti, ma con tutte le versioni in giro non sono certo.
 
Prova a vedere qui:
 
http://stackoverflow.com/questions/1172826/i-need-to-write-an-access-97-mdb-file
 
(
http://tinyurl.com/hjbpngs
)
 
Comunque ho appena provato con il mio 2007 e la funzione 'esporta' delle 
tablle funziona: puoi esportare dal tuo db 2k ad un db esistente formato 
97. Creare il db no, ma aggiungere tabelle si. Quindi parti da un db 
vuoto in formato 97 ed aggiungi quello che ti serve dal db 2k.
 
Così su 2 piedi non trovo di meglio.
 
-- 
GbC
www.gbc.uno

 Come posso rimediare? Cosa manca all' installazione di VB6?
 
Allora provo a suggerirti di vedrificare se nel progetto c'è qualche datacontrol impostato sulla versione 97.
La proprietà Connect di default è su Access, devi selezionare Access 2000.
Poi vai su riferimenti e accertati di avere seleziona la libreria Microsft Dao 3.6.
In questo modo si aprono i 97 e i 2000 (forse pure 2003) sia da codice che da controllo.
 
-- 
Greg

> Per quello che ne so io VB6 supporta fino ad Office 97.
 
[snip]
 
Però...
 
Dao 3.6 con Jet 4.0 supportano fino ad Access 2000.
 
Inserisci le librerie nel progetto e prova questo codice:
 
[paste]
 
Option Explicit
Dim strUser As String
Dim strPassword As String
 
 
Private Sub cmdConnect_Click()
 
Dim cn As New Connection
Dim rs As Recordset
 
strUser = txtUser
strPassword = txtPassword
 
'Create the connection.
     cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Password=" & _
     <password> & ";" & "User ID=" & <utente> & ";" & _
     "Data Source=<il tuo db MDB>;Persist Security Info=True;" & _
     "Jet OLEDB:System database=<il file MDW per le credenziali>"
 
 
'Create recordset reference and set its properties.
     Set rs = New ADODB.Recordset
     rs.CursorType = adOpenKeyset
     rs.LockType = adLockOptimistic
 
rs.Open <tabella>, cn, , , adCmdTable
 
End Sub
 
 
[/paste]
 
 
 
 
-- 
GbC
www.gbc.uno

Option Explicit
Dim strUser As String
Dim strPassword As String
 
 
Private Sub cmdConnect_Click()
 
Dim cn As New Connection
Dim rs As Recordset
 
'Create the connection.
     cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Password=" & _
     <password> & ";" & "User ID=" & <utente> & ";" & _
     "Data Source=<il tuo db MDB>;Persist Security Info=True;" & _
     "Jet OLEDB:System database=<il file MDW per le credenziali>"
 
 
'Create recordset reference and set its properties.
     Set rs = New ADODB.Recordset
     rs.CursorType = adOpenKeyset
     rs.LockType = adLockOptimistic
 
rs.Open <tabella>, cn, , , adCmdTable
 
End Sub
 
 
 
 
-- 
GbC
www.gbc.uno

 Microsft Dao 3.6.
 
Fatto.
 
Sempre grazie, ciao.


 Hai idea di come potrei fare?
 
Se non ricordo male, nel cd di VB6 c'è una cartella, con alcune cose esterrne al vb, una griglia, il crystal e appunto 
il DAO 3.6 con dentro un setup o altro per installarlo separatamente immangino, non l'ho mai provato.
Poi c'è un'altra cartella dentro cui guardare, credo Controls, da vedere
 
-- 
Greg


C'è una cartella DAOSDK con dentro il suo setup
 
-- 
Greg