Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   Run Time Error 2450 (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/6602-run-time-error-2450-a.html)

Dimitriss 15-01-25 14:30

Run Time Error 2450
 
1 Συνημμένο(α)
Καλησπέρα και καλή χρονιά! Στο δείγμα που σας επισυνάπτω από την εφαρμογή που θέλω να κάνω στη δουλειά μου, αντιμετωπίζω το εξής πρόβλημα: Έχω μία κεντρική φόρμα στην οποία υπάρχει μία υποφόρμα που φορτώνω, μέσω ενός combobox, δυναμικά την εκάστοτε υποφόρμα. Η υποφόρμα αποτελείται από μία λίστα και ένα κουμπί. Πατώντας το κουμπί ανοίγει ένα αποκλειστικό αναδυόμενο παράθυρο με το οποίο θέλω να φορτώνω δεδομένα στη λίστα της υποφόρμας. Σε όλες τις υποφόρμες κράτησα την ίδια δομή, αλλάζει μόνο το όνομα της φόρμας. Στην αναδυόμενη φόρμα όταν πατάω εισαγωγή στη λίστα μου εμφανίζει runtime error 2450. Επειδή έχω κάνει πολλές δοκιμές και προσπάθειες, όταν το όνομα της φόρμας δεν δημιουργείται δυναμικά λειτουργεί κανονικά. Κάθε βοήθεια είναι ευπρόσδεκτη. Ευχαριστώ εκ των προτέρων.

Tasos 15-01-25 16:44

Καλησπέρα σε όλους!

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

Στην περίπτωση σου, για να έχεις πρόσβαση σε μια υποφόρμα θα πρέπει να συμπεριλάβεις στην έκφραση και τη γονική φόρμα .

Σημείωση: Οι φόρμες και οι υποφόρμες θα πρέπει να είναι φορτωμένες.

Παράδειγμα για τη λίστα "myLIst" στην υποφόρμα: Forms!mainfrm!subMainfrm.Form!myLIst

Οπότε στον κώδικα σου δοκίμασε τον παρακάτω κώδικα στη φόρμα "addToList"

Κώδικας:

Private Sub Εντολή1_Click()
    With Forms!mainfrm!subMainfrm.Form!myLIst
        .AddItem Nz(Me.addValuecbo.Column(0), Null)
        .Requery
    End With
End Sub

Καλή συνέχεια.

Με εκτίμηση

Τάσος

Dimitriss 16-01-25 09:17

Τάσο σε ευχαριστώ πολύ για την απάντηση σου, αλλά τελικά κατέληξα στην παρακάτω λύση:
Κώδικας:


 formName = Form_mainfrm.formKindcbo.Value
 Select Case formName
 Case 1
    Form_subfrm_1.myLIst.AddItem Item:=Me.addValuecbo.Column(0)
    Form_subfrm_1.myLIst.Requery
 Case 2
    Form_subfrm_2.myLIst.AddItem Item:=Me.addValuecbo.Column(0)
    Form_subfrm_2.myLIst.Requery
 Case Else
    Form_subfrm_1.myLIst.AddItem Item:=Me.addValuecbo.Column(0)
    Form_subfrm_1.myLIst.Requery
 End Select

Ευχαριστώ πολύ!

Tasos 16-01-25 15:51

Καλησπέρα σε όλους!

Δημήτρη χαίρομαι που βρήκες τη λύση που σε εξυπηρετεί.

Παίρνω την πρωτοβουλία να ξανανοίξω το θέμα και να απαντήσω επειδή:
  1. Θεωρώ ότι δεν είναι τεχνικά σωστό να φορτώνεις την κλάση της ήδη ανοιχτής φόρμας για δεύτερη φορά πχ. την Form_subfrm_2..
  2. Η έκφραση Forms!mainfrm!subMainfrm.Form!myLIst αναφέρεται σε οποιαδήποτε φόρμα έχει φορτωθεί
    μέσα στο αντικείμενο subMainfrm της γονικής φόρμας mainfrm.
  3. Πέρα από την απολύτως σεβαστή σου απόφαση να χρησιμοποιείς τις κλάσεις από φόρμες που είναι ήδη ανοιχτές,
    θεωρώ ότι πρέπει στο θέμα αυτό (αλλά και σε κάθε θέμα) να αναδειχτεί η τεχνικά πιο αποδοτική προσέγγιση για τους υπόλοιπους που μας διαβάζουν.


Συγνώμη αν σε κούρασα.

Με εκτίμηση

Τάσος


Η ώρα είναι 15:32.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2