Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    181

    [VB6 & ACCESS] errore di run time 3021 in vb il record corrente corrisponde o alla f

    errore di run time 3021 in vb il record corrente corrisponde o alla fine del file oppure è stato eliminato.

    Ho il seguente codice che mi ritorna l'errore nel titolo:
    SQL1 = "SELECT Nome, Cognome FROM Persone WHERE('Persone.ID' = 'ID')"
    rs.Open SQL1, conn
    rs.MoveFirst
    ViewName.Caption = rs("Nome").Value
    ViewSurname.Caption = rs("Cognome").Value
    re.Close

    Ho provato a rieditare il db ma l'errore che ritorna è sempre lo stesso.
    Inoltre gli oggetti conn e rs sono definiti in un modulo a parte come segue
    Public conn As Object
    Public rs As Object

    Set conn = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.Recordset")

    Come posso risolverlo?
    Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Scusa ... ma questa query

    SQL1 = "SELECT Nome, Cognome FROM Persone WHERE('Persone.ID' = 'ID')"

    cosa vuol dire?

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    181
    Il contesto è questo:
    effettuo una ricerca di Persone di cui visualizzo nome, cognome e Id; seleziono la Persona che mi interessa, quindi mi faccio ritornare i dati relativa a quella persona.
    Per cui la SELECT indica la selezione dalla tabella Persone il Nome ,il Cognome, ecc.. di un dato contatto, il cui Id è uguale al valore della chiave Key ottenuto precedentemente.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma questa

    'Persone.ID' = 'ID'

    non fa riferimento ne' ad alcun campo ne' a valori ... sono solamente due costanti alfabetiche il cui confronto e' sempre falso e il recordset che ti viene restituito e' naturalmente vuoto..

    Forse volevi scrivere

    SQL1 = "SELECT Nome, Cognome FROM Persone WHERE Persone.ID = " & ID

    ... se il valore dell'id da cercare e' nella variabile ID e il campo e' Persone.ID ...

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    181
    No infatti ho sbagliato a postare
    'Persone.Id = 'Key'

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Guarda che gli apici sono importanti ... non li puoi mettere a caso ... cosi' come hai scritto, e' sicuramente sbagliata ...

    Mostri il codice effettivo della query?

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    181
    SQL1 = "SELECT Nome, Cognome FROM Persone WHERE('Persone.ID' = 'Key')"
    rs.Open SQL1, conn
    rs.MoveFirst
    ViewName.Caption = rs("Nome").Value
    ViewSurname.Caption = rs("Cognome").Value
    rs.Close

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non puo' funzionare! Come ti ho detto prima, se usi gli apici, quelle diventano costanti ...

    Cosa e' Key ?

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    181
    Se tolgo gli apici ritorna il seguente errore:
    Errore di run-time '-2147217904(80040e10)'; Nessun valore specificato per alcuni parametri necessari

    Per quanto riguarda la variabile Key:
    è una variabile pubblica dichiarata in un modulo che viene settata (come ho detto prima) dopo la selezione di un dato utente preso da una lista ricavata con una ricerca.
    Per essere sicuro del valore ho eseguito una MsgBox Key prima della SELECT e mi ritorna il valore ID dell'utente di cui voglio i dati con la SELECT.

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non e' che perche' hai un errore, ne devi fare un altro per eliminare il primo.

    La query, dato che Key e' una variabile, deve essere scritta cosi'

    SQL1 = "SELECT Nome, Cognome FROM Persone WHERE Persone.ID = " & Key

    Provala ...

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.