Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > [ Υποφόρμες ] Αναζήτηση σε υποφόρμα μέσω φόρμας

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 19-10-11, 16:02
Όνομα: Νίκη
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 10-10-2011
Περιοχή: Αμαλιάδα
Μηνύματα: 8
Προεπιλογή Αναζήτηση σε υποφόρμα μέσω φόρμας

Καλησπέρα σας,
σαν νέο μέλος θα ήθελα να ευχαριστήσω και να συγχαρώ όλα τα μέλη του φορουμ για την βοήθεια που προσφέρουν.
Θα ήθελα τη βοηθεια σας στο εξή:
Εχω φτιάξει 2 πινακες : πελατες, οχηματα όπου οι 2 αυτοί πίνακες συνδέονται με σχέση 1 προς πολλά μέσω του κωδικού πελάτη.
Εχω φτιάξει μια φόρμα για τους πελάτες όπου έχω τοποθετήσει μια υποφόρμα για τα οχήματα τους. Θέλω να αναζητώ σε αυτή τη φόρμα τους πελάτες π.χ με το αφμ τους αλλά και με κάποιο στοιχείο από το όχημά τους πχ αριθμό κυκλοφορίας (που ανήκει στην υποφόρμα). Γίνεται αυτό
Σας επισυνάπτω και τη βάση μου αν δεν έγινα καταννοητή.
Ευχαριστώ πολύ!
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb Πελατολόγιο.mdb (388,0 KB, 44 εμφανίσεις)
Απάντηση με παράθεση
  #2  
Παλιά 19-10-11, 20:53
Το avatar του χρήστη Meteora
Συντονιστής
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 1.033
Προεπιλογή

Καλήσπέρα

Σε καλοσωρίζω στη κοινότητα και εύχομαι να έχεις την ωφέλεια που επιθυμείς και τώρα και στο μέλλον.

Δες ένα combo box που κάνει τη δουλειά που θες.
Έκανα μια αλλαγή στη δευτερεύουσα φόρμα σου, ώστε να φαίνονται πολλαπλές εγγραφές.

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

Με εκτίμηση

Νίκος Δ.

Υστερολόγιο: Χρειάζεται να καταβάλεις μεγαλύτερη προσπάθεια. Μη μείνεις στο επίπεδο που φαίνεται ότι είσαι...
Συνημμένα Αρχεία
Τύπος Αρχείου: zip Πελατολόγιο.zip (45,5 KB, 85 εμφανίσεις)
Απάντηση με παράθεση
  #3  
Παλιά 19-10-11, 21:26
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα στην παρέα

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

Αν στο σύνθετο πλαίσιο που πρόσθεσα επιλέξεις κάποιο αριθμό κυκλοφορίας, θα εμφανιστεί στην κύρια φόρμα ο πελάτης που έχει το αυτοκίνητο και στη δευτερεύουσα όλα τα αυτοκίνητά του (διατρέχοντας τις εγγραφές της δευτερεύουσας θα δεις και τον αριθμό κυκλοφορίας του φίλτρου).

Αν επιλέξεις το <<ALL>> θα ακυρωθεί το φίλτρο και θα εμφανιστούν όλες οι εγγραφές.

Για τη δημιουργία της παραπάνω λειτουργικότητας, χρησιμοποιήθηκε:

1. Ως προέλευση γραμμής του σύνθετου πλαισίου το ερώτημα:
SELECT car.ar_kikl FROM car UNION Select "<<ALL>>" as ar_kik FROM car ORDER BY 1;

2. Ο κώδικας:
Κώδικας:
Private Sub cboNumCar_AfterUpdate()
    If IsNull(Me.cboNumCar) Or Me.cboNumCar = "<<ALL>>" Then
        Me.Filter = ""
        Me.FilterOn = False
    Else
        Me.Filter = "[client]![customer_ID] in (select customer_ID From car Where ar_kikl='" _
                    & Me.cboNumCar & "' )"
        Me.FilterOn = True
    End If
End Sub
Φιλικά/Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb Πελατολόγιο2.mdb (400,0 KB, 42 εμφανίσεις)
Απάντηση με παράθεση
  #4  
Παλιά 19-10-11, 22:29
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα και πάλι

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

1. Η προέλευση της γραμμής του σύνθετου πλαισίου είναι το ερώτημα:
SELECT car.customer_id, car.ar_kikl FROM car UNION Select 0 as customer_id, "<<ALL>>" as ar_kik FROM car ORDER BY 2;

2. Ο κώδικας είναι:
Κώδικας:
Private Sub cboNumCar_AfterUpdate()
    If IsNull(Me.cboNumCar) Or Me.cboNumCar = 0 Then
        Me.Filter = ""
        Me.FilterOn = False
    Else
        Me.Filter = "[client]![customer_ID]=" & Me.cboNumCar
        Me.FilterOn = True
    End If
End Sub
Φιλικά/Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb Πελατολόγιο3.mdb (444,0 KB, 51 εμφανίσεις)
Απάντηση με παράθεση
  #5  
Παλιά 20-10-11, 14:07
Όνομα: Νίκη
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 10-10-2011
Περιοχή: Αμαλιάδα
Μηνύματα: 8
Προεπιλογή

Ευχαριστώ πολύ για την άμμεση ανταπόκριση!
Αυτό ακριβώς ήθελα!
Απάντηση με παράθεση
  #6  
Παλιά 20-10-11, 15:12
Όνομα: Νίκη
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 10-10-2011
Περιοχή: Αμαλιάδα
Μηνύματα: 8
Προεπιλογή

Καλησπέρα και πάλι,
μετά από μερικές δοκιμές παρατήρησα ότι επιλέγοντας από το σύνθετο πλαίσιο αρ. κυκλοφορίας
με πηγαίνει στον πελάτη που έχει το συγκεκριμένο αρ.κυκλοφορίας αλλά όχι στο αυτοκίνητο θα πρέπει να μετακινηθώ με τα βελάκια μέσα στη φόρμα για να βρω το αυτοκινητο. Εβαλα και ένα σύνθετο πλαίσιο για αναζήτηση με επώνυμο και δεν λειτουργούν ταυτόχρονα σωστά.
Τι θα μπορούσα να κάνω?
Απάντηση με παράθεση
  #7  
Παλιά 20-10-11, 19:07
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.010
Προεπιλογή

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

Νίκη, καλωσόρισες στο φόρουμ!

Παρακάτω σου περιγράφω την πρόταση μου.

Αρχικά τροποποίησε τις ιδιότητες του σύνθετου πλαισίου cboNumCar ως εξής:

1) Προέλευση γραμμής:
Παράθεση:
SELECT client.lastname, car.ar_kikl, client.customer_id, car.car_id FROM client INNER JOIN car ON client.customer_id = car.customer_id ORDER BY client.lastname;

2) Πλήθος στηλών: 4


3) Πλάτη στηλών: 3εκ.;3εκ.;0εκ.;0εκ.


4) Δεσμευμένη στήλη: 1

5) Πλάτος λίστας: 6εκ.

6) Στο συμβάν "Μετά από ενημέρωση" πέρασε τον παρακάτω κώδικα:

Κώδικας:
Private Sub cboNumCar_AfterUpdate()
    Dim rs As Object
    If Not IsNull(Me.cboNumCar.Column(2)) Then
        Set rs = Me.Recordset.Clone
        rs.FindFirst "customer_id = " & Me.cboNumCar.Column(2)
        If Not rs.NoMatch Then
            Me.Bookmark = rs.Bookmark
            If Not IsNull(Me.cboNumCar.Column(3)) Then
                Set rs = Me.carcustomer.Form.Recordset.Clone
                rs.FindFirst "car_id = " & Me.cboNumCar.Column(3)
                If Not rs.NoMatch Then
                    Me.carcustomer.Form.Bookmark = rs.Bookmark
                End If
            End If
        End If
        rs.Close
        Set rs = Nothing
    End If
End Sub
Μπορείς αν θέλεις να μετακινήσεις το σύνθετο πλαίσιο στην κεφαλίδα της φόρμας.

Τρέξε τη φόρμα και πες μας αν είναι αυτό που ζητάς.

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

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

Τελευταία επεξεργασία από το χρήστη Tasos : 21-10-11 στις 07:55.
Απάντηση με παράθεση
  #8  
Παλιά 21-10-11, 14:32
Όνομα: Νίκη
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 10-10-2011
Περιοχή: Αμαλιάδα
Μηνύματα: 8
Προεπιλογή

Ευχαριστώ πολύ για τη βοήθεια αλλά δεν είναι ακριβώς αυτό που θέλω.
Στην αναζήτηση με αρ.κυκλοφορίας που ανήκει στην υποφόρμα δεν πηγαίνει κατευθείαν στην εγγραφή που πρέπει.Δηλαδή αν ενας πελάτης έχει πάνω από ένα οχήματα και κάνω αναζήτηση με αρ. κυκλοφορίας που δεν είναι η πρώτη του εγγραφή και είναι πχ το 3ο από τα οχήματα του , με πηγαίνει στον σωστό πελάτη αλλά όχι στο σωστό όχημα. Λειτουργεί σωστά μόνο αν ψάχνω το πρώτο όχημα που έχει καταχωρηθεί στον πελάτη.
Απάντηση με παράθεση
  #9  
Παλιά 21-10-11, 15:18
Όνομα: Νίκη
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 10-10-2011
Περιοχή: Αμαλιάδα
Μηνύματα: 8
Προεπιλογή

Τελικά άλλαξα την προβολή της υποφόρμας σε πίνακα ώστε να προβάλονται όλα τα οχήματα του πελάτη και έτσι στην αναζήτηση με αρ. κυκλοφορίας πηγαίνει στον πελάτη και προβάλονται όλα τα οχήματα του.
Σας ευχαριστώ όλους πάρα πολύ!Ηταν πολύτιμη η βοήθεια σας!
Απάντηση με παράθεση
  #10  
Παλιά 21-10-11, 15:53
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα

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

Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb Πελατολόγιο4.mdb (424,0 KB, 84 εμφανίσεις)
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Φόρμα με υποφόρμα και κώδικας για εκτέλεση εντολής μέσω της υποφόρμας γιώργοςΚ Access - Ερωτήσεις / Απαντήσεις 4 13-01-15 20:31
[ Φόρμες ] άνοιγμα φόρμας με υποφόρμα octapus Access - Ερωτήσεις / Απαντήσεις 5 22-09-14 15:24
Ενημέρωση Πεδίου Δευτερεύουσας Φόρμας μέσω Βοηθητικής Φόρμας Χρήστος Access - Ερωτήσεις / Απαντήσεις 1 17-04-12 18:18
Συγχρονισμός Φόρμας με υποφόρμα stelianta Access - Ερωτήσεις / Απαντήσεις 4 23-01-12 20:32
[ Υποφόρμες ] Σύνδεση κυρίως Φόρμας με Υπόφορμα Free_Ghost Access - Ερωτήσεις / Απαντήσεις 3 29-11-10 14:39


Η ώρα είναι 00:29.