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

    [VB6] Gestione connessione db access in un progetto

    Salve a tutti, è da poco che mi sono avvicinato a visual basic 6.0 e vorrei capire come gestire una connessione ad un db access in un progetto.

    Mi spiego meglio:

    ho un progetto composto da una decina di form; vorrei capire come gestire le base dati in ogni form, cioè devo istanziare una nuova connessione in ogni form o cosa?

    Se è possibile fare degli esempi è meglio...grazie a tutti!
    Aikon

    ...questo business è binario: o sei 1 o sei 0, vivo o morto, non esistono secondi classificati!

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    245
    trovi un pò di informazioni già qui...
    http://forum.html.it/forum/showthrea...hreadid=407248

  3. #3
    Quindi se ho capito bene io istanzio la connessione nel modulo e poi posso far riferimento ad essa in tutti i form del progetto?
    Aikon

    ...questo business è binario: o sei 1 o sei 0, vivo o morto, non esistono secondi classificati!

  4. #4
    certo, puoi usare una variabile globale, la apri nella prima form del tuo prog, e la puoi usare tutte le volte che vuoi con i metodi Execute
    es:
    'modulo
    Dim objConn as New ADODB.Connection

    'prima form
    crei la connectionstring che ti serve, poi
    objConn.Open()

    'nella tua routine
    crei la sintassi sql
    objConn.Execute strSql

    oppure usi i command text.
    ciao

  5. #5
    Originariamente inviato da verardoelvis
    certo, puoi usare una variabile globale, la apri nella prima form del tuo prog, e la puoi usare tutte le volte che vuoi con i metodi Execute
    es:
    'modulo
    Dim objConn as New ADODB.Connection

    'prima form
    crei la connectionstring che ti serve, poi
    objConn.Open()

    'nella tua routine
    crei la sintassi sql
    objConn.Execute strSql

    oppure usi i command text.
    ciao

    ...scusa verardoelvis ma se non ho capito male, così facendo devo creare la stringa di connessione in ogni form?
    Aikon

    ...questo business è binario: o sei 1 o sei 0, vivo o morto, non esistono secondi classificati!

  6. #6
    ciao. no.
    allora per prima form intendo ad esempio la form di presentazione del programma o quella in cui l'utente digita username e password. in quella form chiami una sub che crea la connessione e la utilizzi come variabile globale (nel modulo) in modo da poterla utilizzare con ogno routine.

    poi nelle altre form, basta che fai

    strSql = "INSERT....."
    objConn.execute strSql

    oppure usi il comando.

    La stringa di connessione, quindi, la crei una volta sola, ad es: nella routine Connetti e una volta aperta la puoi usare in tutte le routine della tua applicazione se l'hai dichiarata come public nel modulo.


    Ricordati di chiuderla quando l'utente vuole uscire dalla tua applicazione. se ha i problemi sono qua,ciao.

  7. #7
    Originariamente inviato da verardoelvis
    ciao. no.
    allora per prima form intendo ad esempio la form di presentazione del programma o quella in cui l'utente digita username e password. in quella form chiami una sub che crea la connessione e la utilizzi come variabile globale (nel modulo) in modo da poterla utilizzare con ogno routine.

    poi nelle altre form, basta che fai

    strSql = "INSERT....."
    objConn.execute strSql

    oppure usi il comando.

    La stringa di connessione, quindi, la crei una volta sola, ad es: nella routine Connetti e una volta aperta la puoi usare in tutte le routine della tua applicazione se l'hai dichiarata come public nel modulo.


    Ricordati di chiuderla quando l'utente vuole uscire dalla tua applicazione. se ha i problemi sono qua,ciao.

    Scusa verardoelvis se per te non è un problema vorrei vedere un esempio scritto in modo da eliminare tutti i miei dubbi sulla questione:

    Diciamo che ho un progetto in cui all'interno ci sono due form "frmClienti" e "frmFornotori" ed un modulo "Modulo";

    Vorrei vedere il codice di istanza connessione all'interno del modulo e come viene richiamata nei due form facendo in ogn'uno di essi una semplice query select.

    Allo startup dell'applicazione puoi farmi anche l'esempio partendo dalla sub main.

    Grazie ancora per la pazienza verardoelvis!!!
    Aikon

    ...questo business è binario: o sei 1 o sei 0, vivo o morto, non esistono secondi classificati!

  8. #8
    allora....io solitamente faccio così.
    ti faccio vedere utilizzando il metodo execute della connessione.
    ricorda che puoi usare ancche il comando (vedi nell'help).


    nel modulo:
    ----
    Option Explicit
    'Variabile globali:
    Public objConn As New ADODB.Connection
    ----

    Public Sub Connetti()
    'Routine che connette il programma al database access
    On Error GoTo GesErr
    Dim PercDB As String

    'Percorso del Database
    PercDB = App.Path & "\Database\DB.mdb"

    'Parametri di connessione
    objConn.Mode = adModeShareExclusive
    objConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & PercDB & ";Persist Security Info=False"
    objConn.Open

    'Se la password è giusta, si connette ...
    frmAccesso.Visible = False
    frmIniziale.Show


    mancano altre cose, come gestione errori, salvataggio DB con FSO, ecc.
    End Sub
    ---


    'ROUTINE
    Public Sub InsCli()
    'Inserisci un cliente nel database.
    On Error GoTo GesErr
    Dim Sql As String, Cod As integer
    Dim Nome as string, cognome as string


    'Recupero i dati dal video
    with frmACli
    Cod = CInt(.txtCod.Text)
    Nome = .txtNome.Text
    Cognome = .txtCognome.Text
    end with


    Sql = "INSERT INTO ACli VALUES (" & Cod & ",'" & Nome & "', '" & Cognome & "')"

    objConn.Execute Sql, rm, adCmdText
    End If

    mancano altre cose come rivisualizza tutti i clienti, sbianca le textbox, ecc. dipende da quello che devi fare

    End Sub





    'ROUTINE
    Public Sub InsFor()
    'Inserisci un fornitore nel database.
    On Error GoTo GesErr
    Dim Sql As String, Cod As integer
    Dim Nome as string, cognome as string


    'Recupero i dati dal video
    with frmAFor
    Cod = CInt(.txtCod.Text)
    Nome = .txtNome.Text
    Cognome = .txtCognome.Text
    end with


    Sql = "INSERT INTO AFor VALUES (" & Cod & ",'" & Nome & "', '" & Cognome & "')"

    objConn.Execute Sql, rm, adCmdText

    'la connesione è già aperta nella routine (Connetti). essendo
    'una variabile globale, ti basta solo richiamarla e usare i
    'suoi metodi e proprietà

    End If

    mancano altre cose come rivisualizza tutti i clienti, sbianca le textbox, ecc. dipende da quello che devi fare

    End Sub




    Prova e vedrai che funziona.
    Stessa cosa per le update, delete, select, ecc, ecc.
    ti basta fare riferimento alla connessione.

    objConn.Execute QualsiasiIstruzioneSQLValida


    CIAO

  9. #9
    usate i tag code per scrivere il codice che non si capisce niente
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  10. #10
    Originariamente inviato da verardoelvis
    allora....io solitamente faccio così.
    ti faccio vedere utilizzando il metodo execute della connessione.
    ricorda che puoi usare ancche il comando (vedi nell'help).


    nel modulo:
    ----
    Option Explicit
    'Variabile globali:
    Public objConn As New ADODB.Connection
    ----

    Public Sub Connetti()
    'Routine che connette il programma al database access
    On Error GoTo GesErr
    Dim PercDB As String

    'Percorso del Database
    PercDB = App.Path & "\Database\DB.mdb"

    'Parametri di connessione
    objConn.Mode = adModeShareExclusive
    objConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & PercDB & ";Persist Security Info=False"
    objConn.Open

    'Se la password è giusta, si connette ...
    frmAccesso.Visible = False
    frmIniziale.Show


    mancano altre cose, come gestione errori, salvataggio DB con FSO, ecc.
    End Sub
    ---


    'ROUTINE
    Public Sub InsCli()
    'Inserisci un cliente nel database.
    On Error GoTo GesErr
    Dim Sql As String, Cod As integer
    Dim Nome as string, cognome as string


    'Recupero i dati dal video
    with frmACli
    Cod = CInt(.txtCod.Text)
    Nome = .txtNome.Text
    Cognome = .txtCognome.Text
    end with


    Sql = "INSERT INTO ACli VALUES (" & Cod & ",'" & Nome & "', '" & Cognome & "')"

    objConn.Execute Sql, rm, adCmdText
    End If

    mancano altre cose come rivisualizza tutti i clienti, sbianca le textbox, ecc. dipende da quello che devi fare

    End Sub





    'ROUTINE
    Public Sub InsFor()
    'Inserisci un fornitore nel database.
    On Error GoTo GesErr
    Dim Sql As String, Cod As integer
    Dim Nome as string, cognome as string


    'Recupero i dati dal video
    with frmAFor
    Cod = CInt(.txtCod.Text)
    Nome = .txtNome.Text
    Cognome = .txtCognome.Text
    end with


    Sql = "INSERT INTO AFor VALUES (" & Cod & ",'" & Nome & "', '" & Cognome & "')"

    objConn.Execute Sql, rm, adCmdText

    'la connesione è già aperta nella routine (Connetti). essendo
    'una variabile globale, ti basta solo richiamarla e usare i
    'suoi metodi e proprietà

    End If

    mancano altre cose come rivisualizza tutti i clienti, sbianca le textbox, ecc. dipende da quello che devi fare

    End Sub




    Prova e vedrai che funziona.
    Stessa cosa per le update, delete, select, ecc, ecc.
    ti basta fare riferimento alla connessione.

    objConn.Execute QualsiasiIstruzioneSQLValida


    CIAO

    Grazie mille verardoelvis adesso provo!!!
    Aikon

    ...questo business è binario: o sei 1 o sei 0, vivo o morto, non esistono secondi classificati!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.