Newsgroup: it.comp.lang.visual-basic
Titolo: Problemi con file mdb

Ho creato una piccola applicazione per la mia ditta e, nel codice, ho
gestito la'pertura del file contenente i dati con la creazione di una
variabile globale di tipo database, una variabile stringa che contiene
il percorso, e per aprire il file uso
DBengine.workspace(0).opendatabase(stringa di pos file)
in un form di gestione contatti poi setto una variabile recordset
Dim rcsFORN as recordset
e con
Set rcsFORN = DBnome.openrecordset("stringa di identificazione tabella")
tento di aprire un record set per poi tratare i dati con un dbgrid
ma qui' mi da' un errore 91 che non riescoa capire
Puo' essere che il file MDB lo ho creato con Access 2000 e il vb e' il
5.0 e quindi il file non viene aperto per incomatibilita' delle versioni
?
Non compare un errore all'apertura del file ?
Ciao
Stefano


Bye

 Per archivi Access 2000 bisogna referenziare il DAO 3.6
Ho controllato nell'applicazione, era proprio quella l'origine dati
selezionata.
Dovete scusare le mie domande forse banali ma uso vb da poco e quindi sono un
po' acerbo.
Altri motivi che possono generare l'errore indicato?
Esempio : nel form ho settato un dbgrid senza settare un data object, puo'
essere questo il problema ? Ma creare un recordset non dovrebbe essere
possibile ugualmente?
Saluti
Corghi

Dim DB as Database
Dim r as recordset
Set DB=dbengine.workspace(0).opendatabase( tuodb)
ser r=DB.openrecordset(tabella o stringa SQL da aprire)
Hai anche così l'errore di apertura recordset?

 wrote


-Fai una ricerca del file DAO350.dll nel tuo pc e se ne trovi + versioni
mantieni solo la più recente (rinominando le altre).
Quest'ultima va poi registrata (regsvr32 dao350.dll)
Bye

 wrote in message
OeB44.16726$Bg7.1...@typhoon.libero.it...


stefano, ho provato ora.
c'e' un "test.mdb" con una sola tabella "aree".
sul form c'e' un controllo data "dtforn", di cui non ho settato nessuna
proprieta', e una griglia "dbGridForn", di cui ho settato solo la proprieta'
datasource=dtforn.
il codice e' tutto qui:
Private Sub Form_Load()
DbName = App.Path & "\" & "test.mdb"
dtforn.DatabaseName = DbName
dtforn.RecordsetType = 1 ' ---> dynaset
dtforn.RecordSource = "SELECT * FROM aree"
dtforn.Refresh
dbGridForn.Refresh
End Sub
la tabella viene caricata normalmente. chiaramente qui e' diverso il
percorso, ma il resto e' piu' uguale che potevo. se ti serve ti zippo il vbp
(e' piccolo).
qui sotto metto il tuo codice, preso dai vari post, rimontato nell'ordine e
con qualche nota scritta prima di provarci in concreto, per cui magari ci
sono dei doppioni, scusami nel caso. spero ti serva a qc, ciao, andrea
===
'global variables
Global DirDati As String    'main database path
Global DbName As String     'main database name
Global DbTempi As Database  'main database object
Global StrMsg As String     'msgbox string
Global BooLoad As Boolean   'loading status
Global IntInput As Integer  'button reply from inputboxpers
Global StrInput As String   'string reply from inputboxpers
nel modulo principale
Select Case Source
  Case "Exe"
    DirDati = "\\MS_NT1\PRODUZIONE\acq_vb\DATI\"
  Case "DevD"
    DirDati = "\\MS_NT1\alluser\acq_vb\DATI\"
  Case "DevC"
    DirDati = "C:\acq_vb\dati\"
'nei select tendo _sempre_ a mettere un
    case else: dirdati = "C:\acq_vb\dati\"
'non si sa mai :)
End Select
'ok-- dopo la scelta magari fai
'--> msgbox dirdati (o simili)
'nel frm del datacontrol, cosi' verifichi
'che il percorso arrivi. qlo che dici
'sul watch mi lascia un po' perplesso
'DbName = DirDati + "DBacq.mdb"
'in genere con le stringhe io preferisco &:
DbName = DirDati & "DBacq.mdb"
Set DbTempi = OpenDatabase(DbName)
'in realta' nel codice qui sotto dbtempi non lo usi.
'anch'io tendevo a metterlo per automatismo
'ma se ci pensi vai a settare il datacontrol
'(suppongo che dtforn sia un d.c.)
'senza passare per dbtempi, solo con dbname:
dtforn.DatabaseName = DbName
' per cfr. guarda il codice testato
'nel caso, togli la global se la usavi solo qui.
'prova a specificare il tipo di rs
'quando non lo facevo mi dava casini:
dtforn.RecordsetType = 1 'dynaset
dtforn.RecordSource = "SELECT commesse.* FROM commesse"
'non basta questo? ---> "SELECT * FROM commesse"
dtforn.Refresh
DBGridforn.Refresh
'scusa la dom sciocca, ma stiamo spulciando tutto:
'nelle propr della griglia
'o da qualche altra parte
'hai messo datasource=dtforn vero ?
with dtforn
    If .Recordset.bOF and .Recordset.EOF Then
        .Caption = "Record . n 0"
    else
        .recordset.movelast 'magari no se hai 3 mln di righe :)
        .caption="Record # " & .recordset.recordcount
    end if
end with

 wrote in message
BG454.24391$Bg7.2...@typhoon.libero.it...


 spedito altrimenti mi licenziano !!
figurati ! licenziano chi non si scorna, non chi ci ci prova riprova e
triprova...
certo che un colpetto di CV£0 ogni tanto male non fa...
in b. al l., a.