Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    33

    [vb6] Selezionare record database

    Ho impostato un collegamento tra un database acces e un programma in vb6 nella classica maniera:

    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim database As String

    e

    database = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
    database = database & "\\E-mobili-server\archivio\Documenti e Risorse\Database.mdb"
    Set cn = New ADODB.Connection
    Set rs = New ADODB.Recordset

    Ora ho la necessità che un determinato cmd mi selezioni un record da ma impostato, per esempio il n° 12, senza impostare un ciclo finchè rs("id")=12.
    grazie

  2. #2
    Ciao.

    Dovresti semplicemente eseguire una query nella quale vai a cercare nella TABELLA di tuo interesse il numero 12 nel campo ID. In questo modo non esegui nessun ciclo.

    codice:
    rs.Open" SELECT * FROM TABELLA WHERE ID = 12"
    nel caso di una textbox da dover leggere

    codice:
    rs.Open" SELECT * FROM TABELLA WHERE ID = '" & tuatextbox.text & "'"
    Buona giornata

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    33
    mi da errore di run-time 3709

    "connessione chiusa o non vailda in questo contesto. impossibile utilizzarla in questa operazione".

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Ovviamente devi aprire la connessione e indicarla all'oggetto recordset prima di inviare la query ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Questo perché probabilmente non apri la connessione con il DB prima di eseguire la query

    codice:
    Dim cn As ADODB.Connection 
    Dim rs As ADODB.Recordset 
    Dim database As String 
    
    e 
    
    database = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" 
    database = database & "\\E-mobili-server\archivio\Documenti e Risorse\Database.mdb" 
    Set cn = New ADODB.Connection 
    Set rs = New ADODB.Recordset
    se il tuo codice si ferma qui, effettivamente non hai ancora aperto nessuna connessione

    database questa è la tua stringa di connessione

    cn e questa è la tua connessione

    Non devi far altro che aprire la connessione utilizzando la stringa , per fare questo ti è sufficiente questo comando

    cn.open database

    Ti consiglio in ogni caso di documentarti sul come connettersi ad un DB access tramite VB6 per apprendere le basi necessarie, altrimenti non andrai molto lontano.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    33
    sis ho risolto. il cn.open database era presente.
    ho dovuto scrivere la stringa così:

    rs.Open "SELECT * FROM tabella WHERE ID = valore numerico", cn, 3, 3.

    In pratica ho aggiunto ", cn, 3, 3" .


    Il tutto funziona perfettamente se immetto un id fisso, per esempio 12. Ma se voglio identificare questo id come variabile mi da errore. in pratica non accetta questa stringa:

    rs.Open "SELECT * FROM tabella WHERE ID = id_input ", cn, 3, 3

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Originariamente inviato da zmenc
    non accetta questa stringa:

    rs.Open "SELECT * FROM tabella WHERE ID = id_input ", cn, 3, 3
    Ovviamente ... dato che è sintatticamente sbagliata. Si tratta di gestire correttamente le variabili e le costanti in VB6 ...

    rs.Open "SELECT * FROM tabella WHERE ID = " & CStr(id_input), cn, 3, 3
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    33
    Ti ringrazio. in effeti ci avevo pensato alle virgolette della query dato che "id_input" è un valore sconosciuto al database, ma presente solo nel codice vb.

    Potresti spiegarmi l'espressione CSts dato che funziona anche senza?
    thx

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Originariamente inviato da zmenc
    Ti ringrazio. in effeti ci avevo pensato alle virgolette della query dato che "id_input" è un valore sconosciuto al database, ma presente solo nel codice vb.
    id_input è una semplice variabile ...

    Potresti spiegarmi l'espressione CSts dato che funziona anche senza?
    CStr non CSts ...

    E' una funzione che serve a convertire un valore numerico in stringa.
    Se manca, la conversione viene implicitamente effettuata dal VB ma è bene usarla per chiarezza.

    P.S. Dato che sono tutte cognizioni molto elementari del linguaggio, suppongo che tu non programmi da molto in VB6 ... Se stai imparando, ti consiglio di partire da un linguaggio .NET ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    33
    In effetti sto programmando da poco, anche se con vb6 mi trovo veramente bene. Qundi tu mi consigli il .net? thx

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.