Εμφάνιση ενός μόνο μηνύματος
  #10  
Παλιά 21-10-10, 10:09
Το avatar του χρήστη Tasos
Tasos Ο χρήστης Tasos δεν είναι συνδεδεμένος
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

Καλημέρα κι από μένα!

Έστω ότι η υποφόρμα μεταξύ άλλων περιέχει το πεδίο CustNr που την συνδέει μα την κύρια φόρμα (Parent).

Το πεδίο αυτό θα πρέπει να υπάρχει στην κύρια φόρμα. Αν δεν θέλουμε να εμφανίζεται επιλέγουμε την ιδιότητα του πεδίου "Ορατό" σε "Όχι".


Κατόπιν, στη λειτουργική μονάδα της υποφόρμας περνάμε το παρακάτω (παραδειγματικός κώδικας):

Κώδικας:
Private Sub Form_AfterDelConfirm(Status As Integer)
      If Not Status Then SetAutoNr
  End Sub
   
  Private Sub Form_AfterUpdate()
      SetAutoNr
  End Sub
   
     Private Sub SetAutoNr()
      'Table1 = ο πίνακας του οποίου τα δεδομένα εμφανίζονται στην υποφόρμα.
      'Autonum = Το πεδίο που θα παιρνει τους αύξοντες αριθμούς σε κάθε δημιουργία ή διαγραφή μιας εγγραφής.
      'CustNr = το ΑΡΙΘΜΙΤΙΚΟ πεδίο με το οπίο συνδέεται η υποφόρμα με τη φόρμα (....Me.Parent.CustNr...).
      Dim i: i = 1
      With CurrentDb.OpenRecordset("SELECT [Table1].[Autonum] " _
                                 & "FROM [Table1] " _
                                 & "Where [CustNr] = " & Me.Parent.CustNr)
          If .RecordCount Then
              .MoveFirst
              Do Until .EOF
                  .Edit
                  .Fields("AutoNum") = i
                  i = i + 1
                  .Update
                  .MoveNext
              Loop
          End If
          .Close
      End With
  End Sub
Με τον τρόπο αυτό, διορθώνουμε το πεδίο Autonum του πίνακα Table1 αλλά μόνο εκείνες τις εγγραφές που αναλογούν στο CustNr.


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