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

 

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

Καταχώρηση πολλαπλών εγγραφών σε φόρμα ενός Access Project

Îåêßíçóå áðü ôï ìÝëïò thodoros. Τελευταία δημοσίευση από το μέλος thodoros στις 29-11-2007, 20:29. Υπάρχουν 8 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  20-11-2007, 18:27 37574

    Καταχώρηση πολλαπλών εγγραφών σε φόρμα ενός Access Project

    Έχω δημοιυργήσει μία εφαρμογή με front end .adp και back end SQL Server 2000. Το ζήτημα είναι το εξής: θέλω ο χρήστης να κάνει καταχωρήσεις σε μία φόρμα (περισσότερες απο μία εγγραφές), αλλά η αποθήκευση των εγγραφών στον πίνακα να γίνεται στο τέλος (πρίν την έξοδο του χρήστη) πιέζοντας κάποιο κουμπί. Δυστυχώς όμως οι εγγραφές καταχωρούνται αυτόματα κάθε φορά που ο χρήστης περνάει στην επόμενη γραμμή. Μπορεί να βοηθήσει κάποιος;

     

    Ευχαριστώ


    Live fast, die young
  •  21-11-2007, 08:38 37578 σε απάντηση της 37574

    Απ: Καταχώρηση πολλαπλών εγγραφών σε φόρμα ενός Access Project

    Γιατί δεν χρησιμοποιείς ένα temp πίνακα για να πατάει πάνω η φόρμα. Στο τέλος της καταχώρισης κάνεις τους απαραίτητους ελέγχους και σώνεις με ένα απλό  Insert στο βασικό σου πίνακα.

    Μια άλλη λύση είναι  είναι να φορτώσεις την φόρμα  με πολλά unbound textboxes (πχ αν έχει δέκα πεδία ανα record και θέλεις τουλάχιστον 10 γραμμές τότε χρειάζεσαι 100 textboxes Sad). Με loop στο τέλος στα πεδία της φόρμας θα πάρεις τις εγγραφές που χρειάζεσαι. Απόφυγε αυτή τη λύση!!!!!!!!!

    Manos
  •  21-11-2007, 19:25 37612 σε απάντηση της 37578

    Απ: Καταχώρηση πολλαπλών εγγραφών σε φόρμα ενός Access Project

    Η πρώτη επιλογή είναι καλή, μήπως όμως υπάρχει κάποιος άλλος τρόπος ώστε να μην καταχωρεί την εγγραφή αυτόματα η access με την αλλαγή κάθε γραμμής; Το πρόβλημά μου είναι ότι ο χρήστης που θα κάνει καταχώρηση, μπορεί να πατήσει το Χ και να βγεί απο την εφαρμογή χωρίς να ακολουθήσει το σκεπτικό που εγώ θέλω (με τα διάφορα κουμπιά). Σε μία τέτοια περίπτωση δεν θέλω να κρατάω τις εγγραφές του.

    Ευχαριστώ.


    Live fast, die young
  •  21-11-2007, 19:54 37614 σε απάντηση της 37612

    Απ: Καταχώρηση πολλαπλών εγγραφών σε φόρμα ενός Access Project

    και να βγει με Χ από τη φόρμα δεν έχεις πρόβλημα. Εσύ κάθε φορά που μπαίνεις στη φόρμα ή κάνεις save θα αδειάζεις το temp πίνακα για αυτόν τον χρήστη.

    Manos
  •  27-11-2007, 22:30 37791 σε απάντηση της 37614

    Απ: Καταχώρηση πολλαπλών εγγραφών σε φόρμα ενός Access Project

    Δημιούργησα έναν προσωρινό πίνακα και στη συνέχεια προσπαθώ να μεταφέρω τις εγγραφές στον κανονικό πίνακα (εκτός απο το RowId, που είναι identity και το παίρνει αυτόματα στον κανονικό πίνακα). Δίνω την εξής σύνταξη

    INSERT INTO dbo.MainTablePer(Name,Surname) SELECT Name,Surname FROM dbo.MainTable WHERE Name=SUSER_SNAME() (γιατί ενδεχομένως στον προσωρινό θα έχω και άλλες εγγραφές απο χρήστες οι οποίοι θα έχουν πατήσει το Χ και θα έχουν βγεί χωρίς να περάσει η καταχώρησή τους στον κανονικό πίνακα. Δυστυχώς όμως παίρνω το ακόλουθο σφάλμα: 

    Server: Msg 512, Level 16, State 1, Procedure rollbackRecord, Line 4
    Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
    The statement has been terminated.

     

    Καμια λύση;;


    Live fast, die young
  •  27-11-2007, 22:44 37793 σε απάντηση της 37791

    Απ: Καταχώρηση πολλαπλών εγγραφών σε φόρμα ενός Access Project

    Φαίνεται οτι έχεις παραπάνω από μια εγγραφές με Name=SUSER_SNAME(). Αυτό, από ο,τι κατάλαβα διαβάζοντας τα σχόλια των συναδέλφων παραπάνω, δεν είναι επιθυμητό σε αυτό το σενάριο. Ετσι, είτε θα φροντίσεις ωστε αν πατήσει κάποιος Χ να σβήσεις τις εγγραφές για τον συγκεκριμένο χρήστη από τον temp table (αυτό που μάλλον συμβαίνει τώρα είναι οτι ο ίδιος χρήστης ειχε πατήσει νωρίτερα Χ οπότε "έμειναν" οι εγγραφές του μέσα) είτε θα παίξεις με top 1 και κάποιο order by με χρήση timestamp για να πάρεις τις τελευταίες τιμές του χρήστη. Το να σβήσεις τις εγγραφές του temp πίνακα αν ο χρήστης ακυρώσει μου φαίνεται πιό λογικό όμως.

     


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  27-11-2007, 23:04 37794 σε απάντηση της 37793

    Απ: Καταχώρηση πολλαπλών εγγραφών σε φόρμα ενός Access Project

    Αυτό που προσπαθώ να αποφύγω είναι να κρατάω καταχωρήσεις απο χρήστες οι οποίοι θα πατήσουν το Χ και δεν θα ακολουθήσουν την "οδό" όπως θέλω εγώ (ώστε να εκτυπώσουν ένα αποδεικτικό κλπ).

    Για αυτό το λόγο έχω τον προσωρινόν πίνακα, στον οποίο καταχωρούνται όλες οι εγγραφές. Αν ο χρήστης πιέσει το κουμπί που θέλω για να προχωρήσει, τρέχει η παραπάνω sql εντολή ώστε να περάσει τις εγγραφές στον μόνιμο-κανονικό πίνακα. Αντίθετα αν κάποιος πατήσει Χ δεν θα ενεργοποιηθεί αυτή η διαδικασία και οι εγγραφές του θα μείνουν μόνο στον προσωρινό πίνακα (που δεν με ενδιαφέρει), κρατώντας "καθαρό" τον κανονικό πίνακα. 

    Όμως ο χρήστης μπορεί να κάνει περισσότερες απο μία εγγραφές και εγώ από ότι φαίνεται δεν μπορώ να τις επιλέξω για να τις περάσω στον κανονικό πίνακα. Δοκίμασα το in αντί για = αλλά τίποτα. Καμιά άλλη ιδέα μήπως; Έχω σχεδόν τελειώσει την εφαρμογή΄, αλλά.... 


    Live fast, die young
  •  29-11-2007, 08:59 37830 σε απάντηση της 37794

    Απ: Καταχώρηση πολλαπλών εγγραφών σε φόρμα ενός Access Project

    Δοκίμασε να δεις αν δουλεύει το
    INSERT INTO dbo.MainTablePer(Name,Surname) SELECT Name,Surname FROM dbo.MainTable WHERE Name='dimitris'. Δηλαδή αν δουλεύει καρφωτά.
    Αν δουλεύει που λογικά θα δουλεύει, απλά θα αναθέτεις με κώδικα το username και όχι με stored procedure.

    Manos
  •  29-11-2007, 20:29 37864 σε απάντηση της 37830

    Απ: Καταχώρηση πολλαπλών εγγραφών σε φόρμα ενός Access Project

    Παιδιά δεν ξέρω τί να πώ.... Σήμερα που δοκίμασα για 1000 φορά την αρχική σύνταξη (που έδινε το σφάλμα). δούλεψε κανονικά!!!! Δεν μπορώ να καταλάβω, είμαι σίγουρος ότι έδιναν την ίδια σύνταξη ακριβώς!!! Huh?

    Πάντως ευχαριστώ για την βοήθεια (λέτε να φταίει ότι δούλευα το project συνεχόμενα μέχρι τις 02.00;;)


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