| Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
| |
|
#1
| |||
| |||
|
Καλησπέρα σε όλους, πώς μπορώ σε μια δευτερεύουσα φόρμα (προβολή: συνεχείς φόρμες) να βάλω ένα πεδίο τύπου αυτόματης αρίθμησης το οποίο να αλλάζει ανάλογα με το πλήθος των εγγραφών? Τί εννοώ:Στη φόρμα καταχωρώ προιόντα σε παραγγελία, να είναι κάπως ετσι: 1->ΣΑΜΠΟΥΑΝ 2->ΣΑΠΟΥΝΙ 3->ΠΕΤΣΕΤΑ. Στην περίπτωση που αφαιρέσω από την λίστα πχ το ΣΑΠΟΥΝΙ,η ΠΕΤΣΕΤΑ να γίνει 2.Επίσης αυτός ο αύξων αριθμός για το κάθε προιόν, πρέπει να μου αποθηκεύεται στον πίνακα. Υπάρχει καμιά ιδέα? Φιλικά, Δέσποινα. |
|
#2
| ||||
| ||||
|
Καλησπέρα... Δέσποινα, κάνε την "διαδρομή" : ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > Αυτόματη αρίθμηση σε δευτερεύουσα φόρμα ...και δες λίγο πιο χαμηλά στα "ΠΑΡΟΜΟΙΑ ΘΕΜΑΤΑ" Με εκτίμηση / Νίκος Δ. |
|
#3
| |||
| |||
|
Καλησπέρα σε όλους, Νίκο σε αυτά τα posts δεν μπορώ να βρω κάτι σχετικό με αυτό που θέλω να κάνω. Θέλω να κάνω αυτό που έγραψα παραπάνω, μέσα στη δευτερεύουσα το πεδίο της αυτόματης αρίθμησης θέλω να παίρνει εκείνη την στιγμή την τιμή του και να προσαρμόζεται ανάλογα σε τυχόν προσθαφαιρέσεις εγγραφών στη δευτερεύουσα (όπως έγραψα και παραπάνω). Επίσης, στην επόμενη νέα εγγραφή που θα δημιουργώ στην εξωτερική φόρμα, το πεδίο αυτό της αυτόματης αρίθμησης (στην δευτερεύουσα) θέλω να ξαναρχίζει την αρίθμηση από το 1. Όπως σε ένα τιμολόγιο: Κύρια φόρμα (στοιχεία πελάτη, παράδοσης κλπ) και δευτερεύουσα (προϊόντα με λεπτομέρειες). Φιλικά, Δέσποινα |
|
#4
| ||||
| ||||
|
Καλησπέρα Δέσποινα! Θέλεις οπωσδήποτε η αύξουσα αρίθμηση να εμφανίζεται στη φόρμα ή θα βολευόσουν και μόνο με την έκθεση (εκτύπωση) του τιμολογίου; Σε ρωτάω γιατί στις εκθέσεις, αυτό που ζητάς είναι απλά θέμα ρύθμισης μιας ιδιότητας πεδίου κειμένου. Όχι όμως και στις φόρμες ή τα φύλλα δεδομένων. ![]() Φιλικά, Γιάννης
__________________ Αν δεν το ρωτούσες, δεν θα το μαθαίναμε ποτέ...! ![]() ----------------------------------------------- Τελικά η γνώση, αντίθετα με ό,τι μέχρι σήμερα πίστευα, είναι η φυλακή της σκέψης. Όταν η αφετηρία είναι η ελεύθερη σκέψη, δεν χρειάζεται πλέον να φτάσεις πουθενά! |
|
#5
| |||
| |||
| Παράθεση:
![]() Μήπως το θυμάται κανας φίλος... |
|
#6
| |||
| |||
|
Καλησπέρα Χρήστο, για να αριθμήσεις τις εγγραφές σε μια ενότητα μιας έκθεσης μπορείς να κάνεις τα εξής: 1. Να προσθέσεις στην ενότητα (πχ Λεπτομέρεια) ένα αδέσμευτο πλαίσιο κειμένου (πχ txtCount). 2. Στο φύλλο ιδιοτήτων του πλαισίου κειμένου, στην καρτέλα Δεδομένα να θέσεις: -Προέλευση στοιχείου ελέγχου=1 -Τρέχον άθροισμα: Για την ομάδα. Τις παραπάνω ρυθμίσεις μπορείς να τις δεις στη ΒΔ, που επισυνάπτω. Φιλικά/Γιώργος |
|
#7
| |||
| |||
| Ο Γιιώργος πανταχού παρόν... Γιώργο σε ευχαριστώ για άλλη μια φορά, τελικά στην έκθεση ήταν πολύ απλό (ειδικά όταν στο λένε Το λάθος μου ήταν που δεν έβαζα το =1... Υ.Γ. Μακάρι να ήταν το ίδιο εύκολο και στην φόρμα... |
|
#8
| |||
| |||
|
Καλησπέρα, ναι θα ήθελα να γίνεται στην φόρμα, για τις εκθέσεις το γνωρίζω οτι γίνεται πολύ εύκολα. Αλλά στις φόρμες? Φιλικά, Δέσποινα |
|
#9
| ||||
| ||||
|
Θα χρειαστεις την εξης στηλη στο ερωτημα της φορμας σου: RecNo: Fn_RecNoA("TO EROTIMA SOU";"ID";[ID]) Και τον εξης κωδικα για το Fn_RecNoA... Κώδικας: Function Fn_RecNoA(QueryName As String, _
PrimKeyName As String, _
PrimKeyVal As Variant) As Long
' Returns the Record No for each Record in a Query
' This is for use in a the Final Query
On Error Resume Next ' - (A)
Dim rst As ADODB.Recordset, RCT As Long, CNT As Long
Dim QNM As String, PKN As String, PKV As Variant
QNM = QueryName
PKN = PrimKeyName
PKV = PrimKeyVal
Set rst = New ADODB.Recordset
Set rst.ActiveConnection = CurrentProject.Connection
rst.CursorType = adOpenKeyset
rst.CursorLocation = adUseClient
rst.LockType = adLockOptimistic
rst.Source = QNM
rst.Open Options:=adCmdTable
CNT = 0
If rst.EOF And rst.BOF Then
GoTo ExitPoint ' If Recordset is empty
End If ' rst
' Populate The Recordset.
With rst
.MoveLast
.MoveFirst
End With
RCT = rst.RecordCount
CNT = 1
rst.MoveFirst
Do While CNT <= RCT
If rst.EOF Or rst.Fields(PKN) = PKV Then
Exit Do
End If ' FDV
rst.MoveNext
CNT = CNT + 1
Loop
ExitPoint:
rst.Close
Set rst = Nothing
Fn_RecNoA = CNT
On Error GoTo 0
End Function
__________________ http://www.facebook.com/home.php?ref...00000309992857 |
|
#10
| ||||
| ||||
|
Καλημέρα κι από μένα! Έστω ότι η υποφόρμα μεταξύ άλλων περιέχει το πεδίο 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
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
| Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
| [ Φόρμες ] Δευτερεύουσα Φορμα | gaz_manos | Access - Ερωτήσεις / Απαντήσεις | 1 | 18-12-15 09:58 |
| accSearchForm.mdb-σε δευτερευουσα φόρμα | pansyr | Access - Ερωτήσεις / Απαντήσεις | 0 | 24-08-15 17:09 |
| [ Φόρμες ] Κουμπί εύρεσης σε φόρμα που περιέχει δευτερεύουσα φόρμα | sakis297 | Access - Ερωτήσεις / Απαντήσεις | 2 | 21-11-14 19:23 |
| Δευτερεύουσα φόρμα | Χρήστος | Access - Ερωτήσεις / Απαντήσεις | 3 | 27-11-13 11:11 |
| Δευτερεύουσα φόρμα σε συνεχή | stavros2244 | Access - Ερωτήσεις / Απαντήσεις | 2 | 09-04-10 07:49 |
Η ώρα είναι 04:13.






Υβριδικός τρόπος

