Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [VB] programma che non si chiude

    Buongiorno ragazzi,
    è la prima volta che creando un applicativo con Visual Basic 6.0 (versione professional) tale applicativo non si chiude correttamente.

    Per meglio spiegare, una volta creato l'eseguibile questo fa delle operazioni in automatico (lancia delle query su un DB Access) dopodiché si dovrebbe chiudere l'applicativo (con un semplice unload me sull'unica form creata) ed infatti la form sparisce dalla visione ma tramite task manager vedo che l'applicativo è ancora in memoria.

    Come test ho provato a non eseguire nessuna query, ma solo a connettermi e a disconnetermi dal DB, ed in questo modo il programma si chiude.

    Il riferimento VB che uso per la lettura del DB è DAO 3.6.

    Che posso fare?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ci mostri il codice?

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466

    Moderazione

    Le domande relative a Visual Basic vanno postate nell'apposito subforum. Sposto la discussione.

    P.S.:
    non dimenticare la versione del linguaggio nel titolo.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    ti sposto nel subforum apposito. p.s. nel titolo, ricordati di specificare anche la versione
    ...Terrible warlords, good warlords, and an english song

  5. #5
    ok
    piccola nota, come vedete le query sono indicate in un file esterno in modo da poter essere aggiunte, rimosse o modificate facilmente

    codice:
    Dim DBName As String
    Dim ASql As Variant
    Dim NASql As Integer
    Dim DB As Database
    
    Private Sub Form_Activate()
    Dim SEr As String, S As String
    Dim LastSqlEr As String
    Dim I As Integer
    Dim Errors As Boolean
        NASql = 0
        Errors = False
    
            F = FreeFile
            Open "query.txt" For Input As #F
            
            Set DB = OpenDatabase("db.mdb")
                    
            While EOF(F) = False
                Line Input #F, S
                If Len(Trim(S)) > 0 Then
                    If NASql = 0 Then
                        ReDim ASql(1)
                        NASql = 1
                        ASql(0) = S
                    Else
                        ASql(NASql) = S
                        NASql = NASql + 1
                        ReDim Preserve ASql(NASql)
                    End If
                End If
            Wend
            Close #F
                    
            If NASql > 0 Then
                'eseguo le varie query
                
                For I = 0 To NASql - 1
                    LblN = (I + 1) & " / " & NASql
                    Lst.AddItem ASql(I), 1 'visualizzo la query in una listbox
                    
                    DoEvents
                    
                    DB.Execute (ASql(I))
                    
                    If Err.Number <> 0 And LastSqlEr <> Err.Description Then
                        LastSqlEr = Err.Description
                        Lst.AddItem "Errore " & Err.Number & ": " & LastSqlEr, 2
                        Errors = True
                    Else
                        Lst.AddItem "Esito: OK", 2
                    End If
                Next I
            End If
            
        If Errors=false Then
            MsgBox "temp"
            Unload Me
            End
        End If
    End Sub

  6. #6

    Re: Moderazione

    Originariamente inviato da alka e Johnny_Depp
    Le domande relative a Visual Basic vanno postate nell'apposito subforum. Sposto la discussione.

    P.S.:
    non dimenticare la versione del linguaggio nel titolo.

    Ciao!
    Pardon, non mi ricordavo dell'esistenza del subforum

  7. #7
    Utente di HTML.it L'avatar di wallrider
    Registrato dal
    Apr 2003
    Messaggi
    2,755
    comunque sia una bella end dopo l'unload me e vedrai che te lo chiude
    RIP Cicciobenzina 9/11/2010

    "Riseminaciceli, i ceci nell'orto"

  8. #8
    l'ho già provata ma non funziona.
    Il form viene chiuso (non è + visibile) ma in task manager l'applicazione risulta ancora attiva.

  9. #9
    Utente di HTML.it L'avatar di wallrider
    Registrato dal
    Apr 2003
    Messaggi
    2,755
    bo prova a disctruggere la variabile DB
    RIP Cicciobenzina 9/11/2010

    "Riseminaciceli, i ceci nell'orto"

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non usare l'istruzione End ... non serve e a volte e' dannosa ...

    Devi

    1) chiudere il db
    2) porre l'oggetto db a nothing

    ma soprattutto pensare al fatto che, in caso di errori, non fai affatto la Unload Me ...

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.