Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    103

    [VB6] Problema recupero campo da tabella

    Ciao di nuovo a tutti!
    Nel mio database ho la tabella CERTIFICATI con due campi: CODICE_CERTIFICATO (CHAR(3)) e NOME_CERTIFICATO (NCHAR(10)).
    Devo inserire un record nella tabella LOTTO_CERTIFICATO utilizzando una stored procedure (INSERISCI_LOTTOCERTIFICATO). La tabella LOTTO_CERTIFICATO ha due campi: CODICE_LOTTO (CHAR(9)) e CODICE_CERTIFICATO (CHAR(3)).
    Nel mio programma ho due ComboBox dalle quali si deve selezionare un CODICE_LOTTO e un NOME_CERTIFICATO. Il mio programma stampa quindi un codice a barre con i dati selezionati e poi dovrebbe inserire nella tabella LOTTO_CERTIFICATO un record composto da il CODICE_LOTTO selezionato nella ComboBox e il CODICE_CERTIFICATO corrispondente al NOME_CERTIFICATO selezionato nella ComboBox.
    Questo è il mio codice relativo alla parte in grassetto:

    codice:
    'Inserisco il record nella tabella LOTTO_CERTIFICATO
    Dim Cmd As New ADODB.Command
    Dim par1 As New ADODB.Parameter
    Dim par2 As New ADODB.Parameter
    Dim rs As New ADODB.Recordset
    
    Cmd.ActiveConnection = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=PROVA_ELENA;Data Source=ELENA-PC\SQLEXPRESS"
    Cmd.CommandText = "INSERISCI_LOTTOCERTIFICATO"
    Cmd.CommandTimeout = 15
    Cmd.CommandType = adCmdStoredProc
    
    par1.Name = "@codice_lotto"
    par1.Type = adChar
    par1.Size = 9
    par1.Value = cboLotto.Text
    
    
    par2.Name = "@codice_certificato"
    par2.Type = adChar
    par2.Size = 3
    rs.Open "SELECT CODICE_CERTIFICATO FROM CERTIFICATI WHERE NOME_CERTIFICATO = 'cboCertificato.Text'", "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=PROVA_ELENA;Data Source=ELENA-PC\SQLEXPRESS", adOpenStatic
    par2.Value = rs.Fields("CODICE_CERTIFICATO").Value
    
    Cmd.Parameters.Append par1
    Cmd.Parameters.Append par2
    
    
    Cmd.Execute

    Mi da il seguente errore: "Il record corrente corrisponde all'inizio o alla fine del file oppure è stato eliminato. Per eseguire l'operazione richiesta è necessario disporre di un record corrente."
    La riga in cui mi segna l'errore è quella in grassetto nel codice, cioè:
    codice:
    par2.Value = rs.Fields("CODICE_CERTIFICATO").Value

    Cosa sbaglio? Spero di essere stata chiara...
    Grazie mille!

  2. #2
    elena, con questa istruzione

    rs.Open "SELECT CODICE_CERTIFICATO FROM CERTIFICATI WHERE NOME_CERTIFICATO = 'cboCertificato.Text'", "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=PROVA_ELENA;Data Source=ELENA-PC\SQLEXPRESS", adOpenStatic

    tu cerchi proprio il *termine* cboCertificato.Text, mentre invece dovresti cercare la *variabile*

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    103

    Grazie mille!
    Però se lo correggo così:

    codice:
    rs.Open "SELECT CODICE_CERTIFICATO FROM CERTIFICATI WHERE NOME_CERTIFICATO = " & cboCertificato.Text & "", "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=PROVA_ELENA;Data Source=ELENA-PC\SQLEXPRESS", adOpenStatic

    mi dà questo errore:
    "Il nome di colonna "DCMB" non è valido!"
    (DCMB è il NOME_CERTIFICATO che ho selezionato dalla ComboBox)

  4. #4
    nell'operazione ti sei mangiata gli apici rimettili

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Occhio agli apici quando formi la stringa della SELECT

    "SELECT CODICE_CERTIFICATO FROM CERTIFICATI WHERE NOME_CERTIFICATO = '"& cboCertificato.Text&"'"
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    103
    Stamattina dormo più del solito!!
    Grazie mille!!

  7. #7

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    103
    codice:
    rs.Open "SELECT MAX(ID) FROM LOTTI_CERTIFICATI", "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=PROVA_ELENA;Data Source=ELENA-PC\SQLEXPRESS", adLockReadOnly
    Dim nummax As Integer
    nummax = rs.Fields("ID").Value

    L'errore me lo segna a questa riga:
    codice:
    nummax = rs.Fields("ID").Value

    "Impossibile trovare l'oggetto nell'insieme corrispondente al nome o al numero richiesto!"



    GRAZIE!!

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Infatti ID non c'è nella SELECT ... se non dai tu un nome al campo temporaneo, lo ottieni con l'indice 0

    nummax = rs.Fields(0).Value
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    103


    Greazie mille ancora!!!

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.