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

    Datacombo che non funziona.Cosa sbaglio?

    Non mi carica i valori in questo datacombo.Sapete dirmi cosa c'è di sbagliato?L'errore sta nella riga in neretto, e precisamente è:
    Object variable or with block variable not set
    Vi posto tutto il codice:
    QUESTO E' IL FORM

    codice:
    Private Sub Form_Load()
       Call connetti
       Rs.Open "SELECT * FROM tab_tabella " ' apre il recordset leggendo tutti i campi dalla tabella
    Set DataCombo1.RowSource = Rs 
      DataCombo1.BoundColumn = "ID_tab"   'campo ID da nascondere
      DataCombo1.ListField = "nome" ' campo da visualizzare
      DataCombo1.Refresh
    end sub
    QUESTO E' IL MODULO DA CUI PRENDE IL CODCIE PR LA CONNESIONE AL DATABASE

    codice:
    Option Explicit
    
    Public Cn As New ADODB.Connection
    Public Rs As New ADODB.Recordset
    
    Sub connetti()
       With Cn
          .ConnectionString = "Provider = Microsoft.Jet.OleDB.4.0;" & _
                              "Data source = " & App.Path & "\db.mdb"
                              
                              'nella prima riga si specifica il provider
                              'nella seconda il percorso al db
          .ConnectionTimeout = 5 'numero dei secondi di timeout
          .CursorLocation = adUseClient 'tipo di cursore
          .Mode = adModeShareDenyNone 'nessuna limitazione
          .Open 'apertura ricordarsi di chiuderla
       End With
       With Rs
          .ActiveConnection = Cn ' imposta a che connessione si riferisce
          .LockType = adLockOptimistic ' imposta il tipo di lock
       End With
    End Sub
    Grazie!

  2. #2
    Scusate ho dimenticato di dire che è VB6!!

  3. #3
    Originariamente inviato da zetaweb
    Scusate ho dimenticato di dire che è VB6!!
    in futuro cerca di non dimenticarlo.

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  4. #4
    Ok scusami....
    però potresti darmi un aiutino anche se sono stato cattivo?!?!

  5. #5
    Originariamente inviato da zetaweb
    Ok scusami....
    però potresti darmi un aiutino anche se sono stato cattivo?!?!
    guarda bene questa parte del codice:
    codice:
    Private Sub Form_Load()
       Call connetti
       Rs.Open "SELECT * FROM tab_tabella " 
      Set DataCombo1.RowSource = Rs 
      DataCombo1.BoundColumn = "ID_tab"   'campo ID da nascondere
      DataCombo1.ListField = "nome" ' campo da visualizzare
      DataCombo1.Refresh
    end sub
    apri il recordset senza passargli la connessione attiva.
    modifica così (vedi riga in rosso):
    codice:
    Private Sub Form_Load()
      Call connetti
      Rs.Open "SELECT * FROM tab_tabella ", Cn, 1, 3
    
      Set DataCombo1.RowSource = Rs 
      DataCombo1.BoundColumn = "ID_tab"   'campo ID da nascondere
      DataCombo1.ListField = "nome" ' campo da visualizzare
      DataCombo1.Refresh
    end sub


    io toglierei questo dal modulo:
    codice:
       With Rs
          .ActiveConnection = Cn 'imposta a che connessione si riferisce
          .LockType = adLockOptimistic 'imposta il tipo di lock
       End With

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  6. #6
    niente da fare.
    Continua a non fungere!!

  7. #7
    allora io ti scrivo il codice come lo avrei fatto io:
    codice:
    'MODULO
    Option Explicit
    
    Public Cn As New ADODB.Connection
    Public Rs As New ADODB.Recordset
    
    Sub connetti()
       Cn.ConnectionString = "Provider = Microsoft.Jet.OleDB.4.0;" & _
                              "Data source = " & App.Path & "\db.mdb"
                              
       Cn.CursorLocation = adUseClient 
       Cn.Open 
    End Sub
    
    'FORM
    Private Sub Form_Load()
      Call connetti
      Rs.Open "SELECT * FROM tab_tabella ", Cn, 1, 3
    
      Set DataCombo1.RowSource = Rs 
      DataCombo1.BoundColumn = "ID_tab" 
      DataCombo1.ListField = "nome"
      DataCombo1.Refresh
    end sub

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  8. #8
    Ho fatto esattamente come dici tu, ma adesso mi da un altro errore.

    Compile error:
    User-defined type not defined

    e mi evidenzia questa riga:

    codice:
    Cn As New ADODB.Connection
    Come mai?

  9. #9
    Originariamente inviato da zetaweb
    Ho fatto esattamente come dici tu, ma adesso mi da un altro errore.

    Compile error:
    User-defined type not defined

    e mi evidenzia questa riga:

    codice:
    Cn As New ADODB.Connection
    Come mai?
    hai messo tra i riferimenti Microsoft ActiveX Data Objects 2.7 Library?

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  10. #10
    Hai ragione!!Avevo cambiato progetto per farlo più pulito e kmi ero dimenticato di richiamarlo.
    Adesso la lista nella combobox funziona, ma il mio obiettivo è recuperare l'id associato al nome. Ho visto che in un'altra discussione tu dici di fare così:

    devi usare l'evento Change e leggere il valore contenuto in BoundText.
    Tieni presente che il valore restituito è una stringa

    Purtroppo però non so proprio come fare. Avevo provato una cosa del genere:

    codice:
    Private Sub Command1_Click()
        Rs.Close
        Rs.Open "SELECT * FROM tab_tabella WHERE ID_tab = " & DataCombo1.BoundColumn & ", Cn, 1, 3"
        Text1.Text = Rs("ID_tab")
    End Sub
    ma non funziona perchè mi da come valore nella stringa proprio "ID_tab" e non il valore associato.
    Lo so che ti sto rompendo, ma potresti darmi un ultimo aiuto e farmi capire come associare l'id alla stringa?
    Grazie mille

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.