Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    361

    [VB6]:Problema con la connessione mdb

    Ciao ragazzi,
    scusate ma devo chiedervi ancora aiuto, ditemi cosa sbaglio perchè faccio fatica a capire:
    Ho la solita Flex e devo "pescare" all'interno di una tabella chiamata Ordini_in_arrivo, utilizzo questo codice per connettermi;

    Private Sub CMD_CONNETTI_Click()
    Set conn = New ADODB.Connection
    With conn
    .Provider = "Microsoft.Jet.OLEDB.4.0"
    .ConnectionString = "Data Source=" & "C:\...\DBase\ORDINI_TUTTI.mdb"
    .Mode = adModeRead
    .Open
    End With
    Call Popola_Flex
    End Sub

    Private Sub Popola_Flex()
    Set rs = New ADODB.Recordset
    conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=dati.mdb;Uid=Admin;Pwd=;"
    rs.Open "SELECT DISTINCT ID, FORNITORE, NUMERO_ORDINE FROM Ordini_in_arrivo", conn

    'qui mi da questo errore "Errore di run-time '3705'" - L'operazione non è consentita se
    l'oggetto è aperto

    Set FLEX.DataSource = rs
    rs.Close
    conn.Close

    End Sub
    Anticipo già i miei ringraziamenti
    vr-claudio

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    1)

    "Data Source=" & "C:\...\DBase\ORDINI_TUTTI.mdb"

    non mi sembra un path corretto: i puntini \...\ non hanno alcun significato.


    2)
    Perchè prima usi il "Microsoft.Jet.OLEDB.4.0"
    e poi il "driver={Microsoft Access Driver (*.mdb)};"
    ???

    Lascia perder il secondo, che tra l'altro può darti seri problemi se non è installato Access.
    Usa sempre e solo il "Microsoft.Jet.OLEDB.4.0"

    3) Oltretutto, perchè apri 2 volte la stessa connessione conn ?
    Tra l'altro, questa riga:
    conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=dati.mdb;Uid=Admin;Pwd=;"
    va eliminata perchè non ha alcun senso.

    Quando hai aperto la connessione la prima volta, è più che sufficiente.
    Ovviamente l'oggetto conn deve essere dichiarato in un modulo BAS come Public.
    Una volta aperta, la puoi usare con rs.Open in tutto il progetto.


  3. #3
    Utente di HTML.it L'avatar di StegcO
    Registrato dal
    Aug 2008
    Messaggi
    371
    Tanto per cominciare ci vuole ordine..

    codice:
    Private Sub cmd_connetti_Click()
    
    Set Conn = New ADODB.Connection
    
    With Conn
         .Provider = "Microsoft.Jet.OLEDB.4.0"
         .ConnectionString = "Data Source=" & "C:\...\DBase\Ordini_Tutti.mdb"
         .Mode = adModeRead
         .Open
    End With
    
    Call Popola_Flex
    
    End Sub
    codice:
    Private Sub Popola_Flex()
    
    Set Rs = New ADODB.Recordset
    
    Rs.Open "SELECT DISTINCT ID, Fornitore, Numero_Ordine FROM Ordini_In_Arrivo", Conn
    
    Set FlexGrid.DataSource = Rs
    
    Rs.Close
    Conn.Close
    
    End Sub

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    361

    Re...

    Ciao ragazzi,
    innanzitutto scusate il ritardo,
    volevo anche dare delle giustificate spiegazioni a Gibra, hai ragione per tutti i tre punti,
    infatti non sono stato chiaro;

    Soprattutto nel primo punto:
    non mi sembra un path corretto: i puntini \...\ non hanno alcun significato.
    I puntini erano solamente per "nascondere il nome della cartella" dove cè il progetto;

    Dopo di chè ho tolto la doppia connessione come mi avete giustamente suggerito entrambi impostando l'oggetto conn in un modulo BAS ma ora mi dà il suddetto errore su questa riga:
    Set FlexGrid.DataSource = Rs
    Errore di run-time '91':
    Variabile oggetto o variabile del blocco With non impostata

    Cosa puo' essere?
    Grazie ragazzi, gentilissimi veramente.
    vr-claudio

  5. #5
    Utente di HTML.it L'avatar di StegcO
    Registrato dal
    Aug 2008
    Messaggi
    371
    Se non sbaglio la tua FlexGrid l'hai chiama FLEX

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    361

    Re...

    Ciao carissimo StegcO,
    ho messo Set FlexGrid .DataSource = Rs per seguire quello che hai scritto tu,
    ma nel codice chiaramente è scritto cosi' FLEX e ti posso garantire che esiste!

    vr-claudio

  7. #7
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244

    Re: Re...

    Originariamente inviato da vr-claudio

    Errore di run-time '91':
    Variabile oggetto o variabile del blocco With non impostata

    Cosa puo' essere?
    Ammesso che la flexgrid esista, non resta che indagare sulla variabile oggetto 'rs'.
    Sicuro sicuro di averla istanziata? Esempio:

    codice:
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset
    
    rs.Open ...........
    Ciao

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.