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

    Sql in visual basic con oggetto data

    Ciao a tutti,
    ho urgente bisogno di voi.
    Come posso interrogare un db access2000 attraverso un oggetto data e non usando ADO (sono obbligato a non usarlo !!!) per fare query con operatori aggregati?
    Io cerco di farlo così ma non funziona:

    Private Sub btnConta_Click()
    dim c as string
    c = "SELECT count(*) FROM Anagrafica where annoNascita = '1976'"
    Data1.RecordSource = c
    Data1.Refresh
    text1.text = c
    End Sub

    Vi prego aiutatemi se non non vado avanti!!!!
    Grazie


  2. #2
    Prova con:

    Private Sub btnConta_Click()
    dim c as string

    c = "select count(anno) as sono, anno from anagrafica group by anno having anno = 1976"
    Data1.RecordSource = c
    Data1.Refresh
    text1.text = Data1.recordset!sono

    End Sub

    L'ho scritto ma non l'ho provato, fammi sapere.

    Ciao

  3. #3
    Mi spara fuori "errore di runtime. Parametri insufficienti. Previsto 1"
    Why???
    Grazie

  4. #4
    Risolto da solo!!! Sbagliavo il nome di un campo della tabella:quote:

    Tuttavia mi sorge un nuovo dubbio:
    usando l'oggetto data per fare una query del tipo

    strSql = "SELECT max(stipendio) FROM impiegati"
    Data1.RecordSource = strSql
    Data1.Refresh

    dove ritrovo il risultato della query se non ho dei textbox con il dataField opportunamente configurato?

    Inoltre non mi è chiaro questo tipo di codice
    SELECT count(AnnoNascita) as sono, as sono, AnnoNascita
    ...
    Data1.Recordset!sono


    Grazie per l'aiuto

    Ciao

  5. #5
    Riguardo al questito del max(stipendio) penso che tu debba correggere la select in questo modo:

    strSql = "SELECT max(stipendio) as maxstipendio FROM impiegati"

    dove maxstipendio (che è un nome arbitrario come quel 'sono' che ho dato io nell'altro esempio) è il campo del recordset dove verrà inserito il risultato.

    In questo caso il refresh creerà un recordset di un solo record contenente in data1.recordset!maxstipendio il risultato della richiesta che non necessariamente devi inserire in una textbox ma puoi utilizzarlo per un calcolo o per qualsiasi altra cosa.

    Es. if data1.recordset!maxstipendio > 10000 then print "complimenti (se sono euro)"

    Nel caso del count(anno) se non ci fosse stata la selezione sull'anno avresti avuto tanti record quanti erano gli anni diversi uno dall'altro e in data1.recordset!sono il conteggio relativo ad ogni anno.

    Ciao

  6. #6
    Grazie sei stato molto gentile!
    Ho risolto parte dei miei problemi.
    Ciao

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.