Gestione Recordset

di il
4 risposte

Gestione Recordset

Ciao, una domanda, si può riempire un recorset manualmente?

ho provato a fare rsRecorset.addnew ma mi da errore e non so come continuare!

Mi basta anke un piccolo esempietto di codice di come riempire un recordset con un paio di righe, ogni riga con almeno 3-4 campi!

Grazie in anticipo!

4 Risposte

  • Re: Gestione Recordset

    Ci incolli il codice della procedura che ti da l'errore? Le sorgenti di errori sono molteplici, e non è facile dare una riposta accurata a una domanda troppo generica.

    Giovanni
    ---
    http://www.y2ksw.com/vbulletin
  • Re: Gestione Recordset

    Ti ringrazio, l'ho risolto così:

    Set rstOre = Nothing
    rstOre.Fields.Append "giorno", adInteger
    rstOre.Fields.Append "ore", adInteger

    rstOre.Open
    .
    .
    .

    ma poi mi da errore a rstOre.Fields.Append "giorno", adInteger.

    Errore di runtime '91'
    "Variabile oggetto o variabile del blocco With non impostata"

    Eppure al collega che mi ha passato il codice funge!

    Grazie
  • Re: Gestione Recordset

    Con

    Set rstOre = Nothing

    imposti l'oggetto rstOre a "niente", per cui l'errore 91 è corretto, perché assegni qualcosa al "nulla".

    Inoltre, con *.fields.append crei una nuova definizione di un tabledef, anziché aprirne un recordset esistente.

    In Access (da tradurre poi in ADO) la formulina per creare un nuovo tabledef è:

    <pre id=code><font face=courier size= id=code>
    dim db as DAO.Database
    dim td as DAO.TableDef
    dim fd as DAO.Field

    set db = OpenDatabase(...)

    set td = new tabledef

    td.name = "NomeTabella"

    set fd = new field

    fd.name = "NomeCampo"
    fd.type = dbString
    fd.size = 255

    td.fields.append fd

    db.tabledefs.append td
    </font id=code></pre id=code>

    oppure:

    <pre id=code><font face=courier size= id=code>
    db.Execute "CREATE TABLE NomeTabella(NomeCampo TEXT)", dbFailOnError
    ...
    db.tabledefs.refresh
    </font id=code></pre id=code>

    ADO ha una sintassi diversa, che non mi ricordo mai a memoria, ma essenzialmente è uguale.

    Personalmente cerco di fare tutto tramite query, perché il codice è più chiaro per chi lavora con programmi strutturati, non ad oggetti, e tutto sommato molte volte è anche più breve.

    Per aprire un recordset esistente:

    <pre id=code><font face=courier size= id=code>
    dim db as DAO.Database
    dim rs as DAO.Recordset

    set db = OpenDatabase(...)

    set rs = db.OpenRecordset("SELECT * FROM NomeTabella", dbOpenDynaset)
    </font id=code></pre id=code>


    Giovanni
    ---
    http://www.y2ksw.com/vbulletin
  • Re: Gestione Recordset

    GRAZIE!!!
Devi accedere o registrarti per scrivere nel forum
4 risposte