Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Aggregate functions in sql and VBA

Îåêßíçóå áðü ôï ìÝëïò silot. Τελευταία δημοσίευση από το μέλος Rayden στις 04-11-2011, 10:17. Υπάρχουν 4 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  03-11-2011, 14:24 68017

    Aggregate functions in sql and VBA

    Καλησπέρα

    Εχω το εξης προβλημα στην VBA:

    Εχω ενα query το οποιο κανει count απο ενα πινακα π.χ

    select count(*) from table.Αυτο το query επιστρέφει τον αριθμο τον records στον πίνακα σαν Integer και θέλω μεσα απο VBA να αποθηκευσω το αποτέλεσμα αυτου του Query

    To query select count(*) from table εκτελειται και αυτο μεσα απο VBA.

    Δοκιμασα τον παρακατω κωδικα αλλα δεν παιζει

    dim count as integer
    sqlquery = "select count(*) from table"

    count = adocn.execute sqlquery

    Μπορει καποιος να μου πει πως παιζει οταν χρησιμοποιω aggregate function sto query??

    Ευχαριστω

  •  03-11-2011, 15:46 68018 σε απάντηση της 68017

    Απ: Aggregate functions in sql and VBA

    dim count as integer
    sqlquery = "select count(*) from table"

    dim rs as adodb.recordset

    rs.open sqlquery,adocn

    count = rs.recordcount

  •  04-11-2011, 08:47 68033 σε απάντηση της 68018

    Απ: Aggregate functions in sql and VBA

    Rayden, το count σου θα είναι πάντα 1, πρέπει να πάρεις το επιστρεφόμενο value μιας και επέλεξες να φέρεις το count. Αν και δεν πολυθυμάμαι vb, νομίζω ότι το σωστό είναι το:

    count = rs.fields(0) 

    ... ή κάτι τέτοιο.

    "When the darkness rises up from inside - that is normal.
    It's when you reach down to pull it up - that the noxious warnings sound."
    Tuzak, Farscape
  •  04-11-2011, 09:05 68034 σε απάντηση της 68033

    Απ: Aggregate functions in sql and VBA

    Εξαρταται απο το είδος rs έχεις ανοίξει. Θυμάμαι ότι υπήρχε η τεχνική να κάνεις move last , move first σε static cursor και τότε το record count γυρνάνε σωστό αποτελεσμα
    Antonios Chatzipavlis

  •  04-11-2011, 10:17 68035 σε απάντηση της 68034

    Απ: Aggregate functions in sql and VBA

    @dimos έχεις δίκιο μάλλον με είχε πάρει ο ύπνος όταν δίαβαζα.

    Δύο λύσεις υπάρχουν

    1η)

    dim count as integer
    sqlquery = "select * from table"

    dim rs as adodb.recordset

    rs.open sqlquery,adocn,adOpenDynamic,adLockOptimistic

    'Για να παίξει το Recordcount Πρέπει ο Cursor να μήν είναι  forward-only cursor γιατι θα επιστρέφει πάντα -1 , 0 dynamic θα επιστρέψει η -1 η το recordcount και ο static η ο  keyset μόνο το recordcount ακόμα και αν είναι 0 '

    count = rs.recordcount

    2η)

    dim count as integer
    sqlquery = "select count(*) from table"

    dim rs as adodb.recordset

    rs.open sqlquery,adocn

    count = rs.fields(0)

     

    Και πάλι συγγνώμη για το μπέρδεμα.

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems