Condividi tramite

Recordset su DB remoto

Anonimo
2013-06-18T11:31:02+00:00

Non riesco a venirne a capo:

questo codice ( apparentemente senza senso ) lo ho estrapolato da una

routine piu complessa per  isolare il problema:

'----------------------------------------------

Public Function VerOri1()

Dim Ssq As String

Ssq = "SELECT Zt.ZtId, Zt.ZtCosa FROM Zt;"

Dim DBr As DAO.Database

Dim RSr As DAO.Recordset

Set DBr = OpenDatabase(CurrentProject.Path & "\Dati.mdb")

Set RSr = DBr.OpenRecordset(Ssq, dbOpenDynaset)

Ssq = vbNullString

Dim tbl As DAO.TableDef

' 1 Inizio ----- Cicla le tabelle di Table Def -----------------------

    For Each tbl In CurrentDb.TableDefs

        Debug.Print tbl.Name

    Next

' 1 Fine ----------------------------------------------------------------

RSr.Close

DBr.Close

Set RSr = Nothing

Set DBr = Nothing

End Function

'-----------------------------------------

se faccio il Debug manuale va tutto bene

ma dopo averlo eseguito con successo 1 volta mi succede che poi

appena tento di salvare o modificare qualunque cosa da questo avviso:

Titolo  Microsoft Access

Non si dispone di accesso esclusivo al DataBase in questo momento.  Le modifiche effettuate potrebbero andare perse

oppure in alternativa e casualmente mi si presenta un altro errore di RunTime

durante la esecuzione

Titolo  Microsoft VisualBasic

Errore di RunTime N° 3734

Il database è stato messo  dall'utente 'Admin' del computer 'XXXYY' in

uno stato che non consente di aprirlo o bloccarlo.

Questo mi succede da quando ho modificato il DataBase del RecordSet

da CurrentDB  a un DB esterno nella cartella

Grazie

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2013-06-18T16:44:09+00:00

Ciao renarig(Mancini),

probabilmente il messaggio esce perché ci sono due istanze di Jet in esecuzione, prova a far lavorare una sola istanza aprendo il db in questo modo.

 Set DBr = DBEngine(0).OpenDatabase(CurrentProject.Path & "\Dati.mdb")

Ciao

Giorgio Rancati

La risposta è stata utile?

0 commenti Nessun commento

3 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2013-06-19T04:58:39+00:00

    Si   il problema era quello

    Grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2013-06-18T16:16:13+00:00

    puoi confermare se Dati.mdb è lo stesso database che ospita il codice in esecuzione ?

    No,

    Dati.mdb  contiene solo la tabella Zt   con i campi Zt.ZtId  e Zt.ZtCosa

    Null'altro

    Mantre App.mdb  contiene il Modulo1  con il codice citato sopra

    i 2 file si trovano nella stessa cartella pertanto ho usato CurentProject.Path

    ______________________________________________________

    Per dare maggiori indicazioni osservo che il problema

    si manifesta con la contemporanea presenza di un RecordSet

    su DB remoto e  un ciclo sulle tabelle del CurrentDB ( locale )

    Ho testato sia Access2013 che Access2003  

    identico problema

    Grazie

    .

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2013-06-18T15:54:35+00:00

    Ciao renarig(Mancini),

    se "Dati.mdb" è il database in cui si sta eseguendo il codice, allora è corretto ricevere quei messaggi di avviso.

    puoi confermare se Dati.mdb è lo stesso database che ospita il codice in esecuzione ?

    Ciao

    Giorgio Rancati

    La risposta è stata utile?

    0 commenti Nessun commento