Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [vb6] chiusura db

    buona sera a tutti
    o questo problema su un gestionale
    dovrei compattare il db ma non riesco a chiuderlo prima della compattazione
    cerco di spiegarmi il meglio possibile
    nel form di avvio il percorso viene memorizzato in una variabile
    dichiarata in un modulo.bas cosi che la vede tutto il progetto
    io faccio cosi ma non va
    vi posto un pezzo di codice
    qualcuno saprebbe aiutarmi

    Private Sub Form_Load()
    Label1.Caption = "ARCHIVIO ANNO 20" & Mid$(filefattura, Len(filefattura) - 5, 2)
    nome = filefattura
    pass = ""
    Set Db = OpenDatabase(nome, False, False, pass)
    Data1.DatabaseName = Db.Name

    End Sub

    Sub verificaecompatta()

    db.close
    set db.nothing

    RISPOSTA = MsgBox("CONTROLLA E COMPATTA TUTTI GLI ARCHIVI IN USO " & vbLf & "CONFERMA", vbQuestion + vbYesNo, "CONFERMA")
    If RISPOSTA = vbNo Then Exit Sub

    Dim NOMEDB As String
    Dim CONN As JRO.JetEngine
    Dim CONN_Sorg As New Connection
    Dim CONN_Dest As New Connection


    On Error GoTo errori:
    NOMEDB = filefattura
    CopyFile NOMEDB, (Mid(Trim(NOMEDB), 1, Len(Trim(NOMEDB)) - 4)) & "tmp.MDB", True

    Set CONN = New JRO.JetEngine
    CONN_Sorg = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & NOMEDB & ";User ID=Admin;Password=;"
    CONN_Dest = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Mid(Trim(NOMEDB), 1, Len(Trim(NOMEDB)) - 3) & "Tmp" & ";"
    '
    CONN.CompactDatabase CONN_Sorg, CONN_Dest
    '
    Set CONN = Nothing
    Kill NOMEDB
    '
    FileCopy Mid(Trim(NOMEDB), 1, Len(Trim(NOMEDB)) - 3) & "tmp", NOMEDB

    'elimina database temporaneo
    Kill Mid(Trim(NOMEDB), 1, Len(Trim(NOMEDB)) - 3) & "tmp"

    MsgBox "OPERAZIONE ESEGUITA CON SUCCESSO", vbOKOnly, "GESTIONALE"


    Exit Sub
    errori:
    If Err.Number = 53 Then
    Resume Next
    Else
    MsgBox Err.Description, vbCritical, Err.Number

    End If

    End Sub

    ciao

  2. #2
    La variabile "nome" deve essere però dichiarata come "Public", e non con "dim" altrimenti viene resa public solo all'interno del modulo stesso. Se lo hai già fatto, guarderò il codice..

    ciao

  3. #3
    la variabile nome e gia dichiatata come public
    ciao

  4. #4
    nessuno che mi puo dare un consiglio

    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    357
    Scusa, apri il data base in DAO e compatti con il codice che normalmente si utilizza in ADO?
    Ma che messaggio di errore ti dà? E quando lanci la Sub verificaecompatta hai chiuso il database?

  6. #6
    mi da il messaggio che il db e gia in uso

    il mio problema e proprio questo che non riesco a chiudere il db
    io lo chiudo con db.close ed set db=nothing ma non me lo chiude

    siccome mi servirebbe compattarlo mentre e in uso il progetto
    essendo un gestionale a inizio anno vorrei azzerare e compattare il database per inizializzarlo

    ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    357
    Ho visto che utilizzi un oggetto data control DAO prova a fare la close anche del data1 per vedere se eventualmente è quello che ti tiene impegnato il db.
    Ciao

  8. #8
    o fatto anche quello ma non va
    ciao

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    357
    Prova a modificare il codice in questo modo :

    codice:
    CompactDatabase Nome, Mid(Trim(Nome), 1, Len(Trim(Nome)) - 3) & "Tmp"
    Togliendo questo:

    codice:
    Set CONN = New JRO.JetEngine 
    CONN_Sorg = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & NOMEDB & ";User ID=Admin;Password=;" 
    CONN_Dest = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Mid(Trim(NOMEDB), 1, Len(Trim(NOMEDB)) - 3) & "Tmp" & ";" 
    ' 
    CONN.CompactDatabase CONN_Sorg, CONN_Dest 
    ' 
    Set CONN = Nothing
    Ciao

  10. #10
    ragazzi o risolto era il data1
    io lo chiudevo con data1.recordset.close
    invece era con data1.database.close
    ciao e grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.