Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > Δημιουργία πίνακα μέσω κώδικα VBA

Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια!

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 09-05-21, 10:51
Όνομα: Κώστας
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 14-11-2012
Περιοχή: κοζανη
Μηνύματα: 41
Προεπιλογή Δημιουργία πίνακα μέσω κώδικα VBA

Καλημέρα σε όσους παρακολουθούν το forum και χρόνια πολλά!
Επισυνάπτω μια βάση, όπου, από ένα ερώτημα «ΚΔΕ», μέσω κώδικα VBA, δημιουργείται ένας νέος πίνακας «ΠίνακαςΚΔΕ», ο οποίος έχει ένα πεδίο επιπλέον του ερωτήματος ΚΔΕ , αυτό της αρίθμησης των εγγραφών του ΚΔΕ. Το ξεσήκωσα από μια βάση που έχει ανεβάσει παλιά ο kapetang το 2013, με σκοπό να μας δείξει πώς αριθμούνται οι εγγραφές ενός ερωτήματος ανάλογα με τα κριτήρια και την ταξινόμηση που εφαρμόζεται.
Αν και είναι πολύ ενδιαφέρον θέμα η αρίθμηση των εγγραφών, αυτό που με απασχολεί αυτή τη στιγμή είναι να προσαρμόσω τον κώδικα VBA σε αυτό που θέλω, σε κάτι πολύ πιο απλό, που όμως δε μπορώ να το κάνω μόνος μου, μη γνωρίζοντας VBA. Θέλω να δημιουργείται απλώς ένας πίνακας, μέσω VBA, ολόιδιος με το ερώτημα (χωρίς το επιπρόσθετο πεδίο της αρίθμησης). Κάτι που θα μπορούσα, χωρίς VBA, να το κάνω, πολύ απλά, με ερώτημα ενέργειας (ερώτημα δημιουργίας πίνακα).
Θα ήθελα, δηλαδή, στην επισυναπτόμενη βάση, να μου «διορθώσετε» τον κώδικα VBA, ώστε ο πίνακας «ΠινακαςΚΔΕ» που προκύπτει να είναι ολόιδιος με το ερώτημα ΚΔΕ (ίδια πεδία, ίδιες εγγραφές).
Μάλιστα, ενώ το ερώτημα ΚΔΕ θα είχε κανονικά 26000 εγγραφές, με ένα κριτήριο που βάζω στο πεδίο Ημερομηνία (>#1/9/2020#) περιορίζω τις εγγραφές του σε λιγότερες από 2000, επειδή αλλιώς ο κώδικας δεν τρέχει (βγάζει Run time error 3163: "Το πεδίο είναι πολύ μικρό για να δεχθεί τα δεδομένα που επιχειρήσατε να προσθέσετε. Προσπαθήστε να εισάγετε ή να επικολλήσετε λιγότερα δεδομένα"). Φαντάζομαι ότι αυτό συμβαίνει επειδή προσθέτουμε το επιπλέον πεδίο αρίθμησης των εγγραφών, που «φορτώνει» τη μνήμη, και ότι αν μου απλοποιήσετε τον κώδικα αφαιρώντας το πεδίο αρίθμησης, θα μπορώ να σβήσω το κριτήριο περιορισμού των εγγραφών, που δεν το θέλω καθόλου. Επίσης, αν γίνεται, με την εφαρμογή του κώδικα, να μην ανοίγει ο πίνακας «ΠινακαςΚΔΕ» που δημιουργείται (και να χρειάζεται εγώ να τον κλείσω στη συνέχεια), απλά να αντικαθιστά τον προηγούμενο, με το ίδιο όνομα, πίνακα. Να συμπεριφέρεται, δηλαδή, τελικά, σαν ερώτημα δημιουργίας πίνακα.
Ελπίζω να μη ζητάω πολλά!
Ευχαριστώ για τη βοήθειά σας, Κώστας Κ. (Κοζάνη)
Συνημμένα Αρχεία
Τύπος Αρχείου: zip CounterRecords2003.zip (511,4 KB, 5 εμφανίσεις)
Απάντηση με παράθεση
  #2  
Παλιά 10-05-21, 11:45
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Κώστα δοκίμασε την τροποποίηση.
Συνημμένα Αρχεία
Τύπος Αρχείου: zip CounterRecords2003.zip (4,57 MB, 19 εμφανίσεις)
Απάντηση με παράθεση
  #3  
Παλιά 10-05-21, 22:14
Όνομα: Κώστας
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 14-11-2012
Περιοχή: κοζανη
Μηνύματα: 41
Προεπιλογή

Ευχαριστώ Γιώργο! Είμαι πραγματικά υπόχρεος!
Απάντηση με παράθεση
  #4  
Παλιά 11-05-21, 00:28
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Να είσαι καλά και καλή συνέχεια.
Απάντηση με παράθεση
  #5  
Παλιά 13-05-21, 13:22
Όνομα: Κώστας
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 14-11-2012
Περιοχή: κοζανη
Μηνύματα: 41
Προεπιλογή Αποτυχία εφαρμογής

Είχα την ελπίδα Γιώργο ότι ο τρόπος αυτός (ερώτημα δημιουργίας πίνακα μέσω VBA) θα «φόρτωνε» λιγότερο την Access από τον κλασικό τρόπο (ερώτημα δημιουργίας πίνακα, ως ερώτημα ενέργειας). Δυστυχώς στη βάση δεδομένων μου (όχι στο παράδειγμα που είχα ανεβάσει), που είναι πολύ μεγάλη, πάνω από 1,5 Gb, και που δε μπορώ να την ανεβάσω στο forum, ενώ τρέχει «κανονικά» το ερώτημα ενέργειας, όταν το μετασχηματίζω σε ερώτημα επιλογής που δημιουργεί μέσω κώδικα VBA τον ίδιο πίνακα (δηλαδή αυτό που μου έδωσες), μου βγάζει μήνυμα Error 3190-έχουν οριστεί πάρα πολλά πεδία.
Είναι γεγονός ότι όταν το αρχείο Access που χρησιμοποιώ το μετέφερα σε κομπιούτερ που τρέχει Access 2016 κι όχι Access 2007 που έχω στο labtop μου, δεν έτρεχε το ερώτημα ενέργειας (μου έβγαζε ότι το ερώτημα είναι πολύ πολύπλοκο). Για τον λόγο αυτό, κι επειδή τρόμαξα ότι θα μείνω αναγκαστικά στα Office 2007, για να μπορώ να χρησιμοποιώ την Access μου, είχα σκεφτεί να χρησιμοποιήσω αυτό που είδα να κάνεις, δηλ. μέσω VBA να δημιουργώ τον πίνακα. Τελικά φαίνεται ότι αυτός ο τρόπος (VBA) «παίρνει» περισσότερη μνήμη από τον κλασικό. Και το παράδοξο είναι τελικά ότι σε νεότερη έκδοση της Access λιγότερα πράγματα μπορώ να κάνω.
Ευχαριστώ πάντως για τη βοήθεια!
Απάντηση με παράθεση
  #6  
Παλιά 13-05-21, 20:45
Όνομα: Γιάννης
Έκδοση λογισμικού Office: Ms-Office 2016
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 08-12-2020
Μηνύματα: 153
Προεπιλογή

Κώστα είναι γεγονός ότι η Access όσο προχωράει στο συγκεκριμένο θέμα γίνεται χειρότερη καθώς φορτώνεται με επιπλέον features αλλά χωρίς να αλλάζει ο πυρήνας της που έχει πολλούς περιορισμούς στο τομέα της μνήμης...υποτίθεται ότι θα βγεί κάποια αναβάθμιση κάποια στιγμή που υποτίθεται θα βοηθήσει στην διαχείριση της μνήμης αλλά με το πωλητή που έχει επικεφαλής η Dev team αμφιβάλλω αν θα κάνει τίποτα...μόνο δηλώσεις ξέρει να κάνει...και να παρουσιάζει την τρίχα τριχιά.
Τώρα στο θέμα σου .... μπορείς να δοκιμάσεις να τραβήξεις τον πίνακα σε μια άλλη βάση μαζί με ότι χρειάζεσαι και να τρέχει εκεί τον κώδικα...βασικώς έπρεπε να έχεις FE+BE την εφαρμογή σου.
Απάντηση με παράθεση
  #7  
Παλιά 13-05-21, 21:44
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

1) Γενικά η VBA θεωρείται λύση "ανάγκης".

Χρησιμοποιείται, κυρίως, όπου δεν μπορούμε να πετύχουμε το ζητούμενο με τα εργαλεία που μας παρέχει το περιβάλλον της Access.

Αφού μπορείς να δημιουργήσεις τον πίνακα με ερώτημα δεν υπάρχει λόγος να χρησιμοποιήσεις VBA.

2) Με τη χρήση μιας ΒΔ αυξάνει το μέγεθος του αρχείου και κάποιες φορές εμφανίζονται προβλήματα, που ίσως λυθούν με συμπίεση της ΒΔ.

3) Για το σφάλμα που εμφανίζεται και για τους τρόπους αντιμετώπισης δες το σύνδεσμο:
5 Ways To Fix Access Too Many Fields Defined Error
Απάντηση με παράθεση
  #8  
Παλιά 14-07-21, 20:15
Όνομα: Κώστας
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 14-11-2012
Περιοχή: κοζανη
Μηνύματα: 41
Smile Λύση στο πρόβλημα μου, τελικά!

Τελικά, βρήκα τρόπο, κάνοντας μερική αναμόρφωση σε κάποια ερωτήματα, να απλοποιήσω αρκετά το σχεδιασμό της βάσης μου, ώστε να δουλεύει πλέον πιο εύκολα. Τρέχει και στην Access 2013 πλέον (ενώ πριν, τα ερωτήματα δημιουργίας πίνακα έτρεχαν μόνο στο περιβάλλον που είναι ακόμη το labtop μου, Windows 7 και Office 7). Τώρα, πλέον, εμφανίζονται και σε προβολή σχεδίασης. Μπορώ να μεταφέρω τη βάση σε οποιοδήποτε κομπιούτερ και να τη δουλέψω κι εκεί. Δεν είναι καμιά σοβαρή είδηση για κανέναν, αλλά ήθελα να το μοιραστώ με τους άγνωστους φίλους, που πολλές φορές με βοήθησαν στο παρελθόν!
Απάντηση με παράθεση
Απάντηση στο θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Δημιουργία Folder μέσω Vba γιώργοςΚ Access - Ερωτήσεις / Απαντήσεις 5 15-03-16 13:04
[ Ερωτήματα ] Δημιουργία Ερωτήματος μέσω VBA noname Access - Ερωτήσεις / Απαντήσεις 4 18-09-15 20:23
Δημιουργία ερωτήματος ή κώδικα για εύρεση εγραφής σε πίνακα γιώργοςΚ Access - Ερωτήσεις / Απαντήσεις 6 23-03-15 23:31
Έλεγχος πρόσβασης στο Internet μέσω κώδικα ChryssaV Access - Ερωτήσεις / Απαντήσεις 10 06-08-09 18:32


Η ώρα είναι 21:02.