Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Output query e variabili

    Ciao,

    come posso mettere il risultato di una query (che nel mio caso è un solo numero) in una variabile??

    pensavo a qualcosa del tipo:

    codice:
    Dim sql As string
    Dim output As int
    
    sql ="select top 1 id from dati where ora = '2' order by data desc"
    output= sql.value
    Ma il comando sql.value non funziona!!
    Sapete darmi una mano
    Grazie

    (naturalmente VB6)

  2. #2
    nel codice da te postato non c'è la connessione al db, ne tantomeno la creazione e l'apertura di un recordset... ecco dove stà l'errore..
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

  3. #3
    codice:
        Dim strSQL As String, strConn As String
        Dim Conn As ADODB.Connection, RS As ADODB.Recordset
        Dim Output As Integer
        strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=PathENomeDB.mdb"
        Set Conn = CreateObject("ADODB.connection")
        Conn.Open strConn
        strSQL = "select top 1 id from dati where ora = '2' order by data desc"
        Set RS = CreateObject("ADODB.Recordset")
        RS.Open strSQL, Conn, 3, 3
        Output = RS("id").Value
        If IsObject(RS) Then
            If Not RS Is Nothing Then
                If RS.State = 1 Then RS.Close
                Set RS = Nothing
            End If
        End If
        Conn.Close
        Set Conn = Nothing
    questo è un esempio di connessione a un DataBase Access...

    naturalmente devi cambiare il nome e la path del db e inserire Microsoft ActiveX Data Object nei riferimenti..
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304

    Re: Output query e variabili

    Originariamente inviato da fraduecenny
    (naturalmente VB6)
    Naturalmente andava specificato nel titolo...

    Aggiungo io.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Descrivo meglio il problema e posto per intero il codice!

    devo passare ad una variabile il contenuto di una query che nel mio caso corrisponde ad un solo numero!! il VB appartiena al database in cui opera.

    codice:
    Private Sub ultimo_Click()
    
     Dim intValue, intOutput As Long
     Dim strSql As String
     Dim RS As ADODB.Recordset
       
       intValue = Me![id]
            
        strSql = "SELECT TOP 1 id FROM elenco_appuntamenti WHERE ID_Anagrafica = " & intValue & " ORDER BY id DESC"
        Set RS = CreateObject("ADODB.Recordset")
      
      CurrentProject.Connection.Execute strSql
            
        intOutput = RS("id").Value
    
    DoCmd.OpenForm "appuntamenti", acPreview, , "id = " & intOutput & "", acFormEdit, acDialog
    
    End Sub
    In poche parole devo aprire una maschera posizionandola su un determinato record, il quale mi è dato dal risultato della query strQSql!

    Ho provato ad apportare le modifiche suggerite da andreaciao_22 ma mi restituisce il seguente errore:

    codice:
    Impossibile trovare l'oggetto nell'insieme corrispondente al nome o al numero richiesto
    il debug si posiziona su:

    codice:
    intOutput = RS("id").Value
    Grazie

  6. #6
    ma sei sicuro che sia vb6 e che tu non stia lavorando con vba di access???

    ci sono un pò di differenze a mio parere...

    prova a fare una query direttamente in access... secondo me la query non ti restituisce nulla..
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

  7. #7
    ho capito il problema...

    nel mio codice doopo aver creato il recordset lo apro e lo uso...

    nel tuo crei il recordset dici alla connessione di eseguire la queri (senza per altro mettere i risultati nel recordset) e usi il recordset che, ovviamente, non ha dentro il campo id...

    quindi il tuo codice diventa:

    codice:
    Private Sub ultimo_Click()
    
     Dim intValue, intOutput As Long
     Dim strSql As String
     Dim RS As ADODB.Recordset
       
       intValue = Me![id]
            
        strSql = "SELECT TOP 1 id FROM elenco_appuntamenti WHERE ID_Anagrafica = " & intValue & " ORDER BY id DESC"
        Set RS = CurrentProject.Connection.Execute strSql
        intOutput = RS("id").Value
    if rs.state=1 then rs.close    
    set rs=nothing
    
         DoCmd.OpenForm "appuntamenti", acPreview, , "id = " & intOutput & "", acFormEdit, acDialog
    
    End Sub
    provalo...

    oppure, ancora più semplicemente

    codice:
    Private Sub ultimo_Click()
    
     Dim intValue, intOutput As Long
     Dim strSql As String
     Dim RS As ADODB.Recordset
       
       intValue = Me![id]
            
        strSql = "SELECT TOP 1 id FROM elenco_appuntamenti WHERE ID_Anagrafica = " & intValue & " ORDER BY id DESC"
        Set RS = CurrentProject.Connection.Execute strSql
         DoCmd.OpenForm "appuntamenti", acPreview, , "id = " & RS("id").Value & "", acFormEdit, acDialog
    if rs.state=1 then rs.close    
    set rs=nothing
    End Sub
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

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 © 2024 vBulletin Solutions, Inc. All rights reserved.