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

    [VB6] Funzioni e RecordSet (DAO)

    Una funzione può avere come valore di ritorno un recordset?

    Ovvero, se definisco:


    Private Function Query(ssql As String) As DAO.Recordset
    Dim rs As DAO.Recordset
    Dim db As DAO.Database

    Set db = Workspaces(0).OpenDatabase(PathDb)
    Set rs = db.OpenRecordset(ssql)

    Query = rs

    rs.Close
    db.Close

    End Function


    e poi la richiamo come:


    Set rs = Query("SELECT * FROM tabella)"


    Mi da:


    Errore di compilazione. Utilizzo non valido di Property


    La mia domanda perciò è: questo errore è dovuto ad un "limite" di VB& oppure a una mia errata implementazione?

    Grazie,
    alesssia
    Secondo alcuni autorevoli testi di tecnica di aeronautica, il calabrone non può volare, a causa della forma e del peso del proprio corpo in rapporto alla superficie alare.
    Ma il calabrone non lo sa e perciò continua a volare. (Igor Sikorsky)

    Chi beve solo acqua ha un segreto da nascondere (Charles Baudelaire)

  2. #2
    Si puo fare.
    codice:
    Dim DB As DAO.Database
    '------------------------------------------------------------------
    Public (Private) Function OpenDynaset(ByVal SQL as String, Optional Byval ReadOnly As Boolean) As DAO.Recordset
    
    If ReadOnly Then
    SET OpenDynaset = DB.OpenRecordSet(SQL, DB.OpenRecordset(SQL, dbOpenDynaset, dbReadOnly)
    Else
    SET OpenDynaset = DB.OpenRecordSet(SQL, DB.OpenRecordset(SQL, dbOpenDynaset, dbConsistent)
    End if
    
    End Function
    '------------------------------------------------------------------
    Public (Private) Function OpenSnapshot(ByVal SQL As String, Optional ByVal ForwardOnly As Boolean) As DAO.Recordset
    
    If ForwardOnly Then
    Set OpenSnapshot = DB.OpenRecordset(SQL, dbOpenSnapshot, dbForwardOnly)
    Else
    Set OpenSnapshot = DB.OpenRecordset(SQL, dbOpenSnapshot)
    End If
    
    End Function
    Annotazioni
    Il Database deve essere Aperto e non si chiude.
    Esempi
    codice:
    Private Sub Form_Load()
    Dim RS As DAO.RecordSet
    
    Set DB = Workspaces(0).OpenDatabase(PathDb) 
    
    Set RS = OpenDynaset("SELECT * FROM tabella", False)
    End Sub
    Fabian Dialer
    http://www.vegasw.com
    VB-5/6, VBA, SQL, WIN2K

  3. #3
    Grazie mille!
    Secondo alcuni autorevoli testi di tecnica di aeronautica, il calabrone non può volare, a causa della forma e del peso del proprio corpo in rapporto alla superficie alare.
    Ma il calabrone non lo sa e perciò continua a volare. (Igor Sikorsky)

    Chi beve solo acqua ha un segreto da nascondere (Charles Baudelaire)

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.