Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Δημιουργία τυχαίων αριθμών
Καλησπέρα σε όλους, Θα ήθελα την βοήθειά σας για μια ακόμη φορά. Έχω μια φόρμα με τα εξής 3 πεδία (ΠΙΣΤΟΠΟΙΗΤΙΚΟ, ΑΡΙΘΜΟΣ_ΠΙΣΤΟΠΟΙΗΤΙΚΟΥ, ΚΩΔΙΚΟΣ_ΠΙΣΤΟΠΟΙΗΤΙΚΟΥ). Θα ήθελα πατώντας την εντολή (ΔΗΜΙΟΥΡΓΙΑ ΤΥΧΑΙΩΝ ΚΩΔΙΚΩΝ) να δημιουργεί και στα 3 πεδία κάποιους τυχαίους αριθμούς οι οποίοι κάθε φορά να είναι μοναδικοί,θα πρέπει όμως να υπάρχουν οι εξής προυποθέσεις για το κάθε πεδίο. 1)Στο πεδίο (ΠΙΣΤΟΠΟΙΗΤΙΚΟ) ο τυχαίος αριθμός θα πρέπει να ξεκινάει από 1 και να είναι 6ψήφιος. 2) Στο πεδίο (ΑΡΙΘΜΟΣ_ΠΙΣΤΟΠΟΙΗΤΙΚΟΥ) ο τυχαίος αριθμός θα πρέπει να ξεκινάει από 1700 και να είναι 9ψήφιος. 3)Στο πεδίο (ΚΩΔΙΚΟΣ_ΠΙΣΤΟΠΟΙΗΤΙΚΟΥ) ο τυχαίος αριθμός θα πρέπει να ξεκινάει από 000 και να είναι 9ψήφιος. Σας ευχαριστώ εκ των προτέρων!!! Τελευταία επεξεργασία από το χρήστη Tasos : 13-10-13 στις 17:53. |
#2
| |||
| |||
Καλησπέρα Γιώργο, ελπίζω να κατάλαβα σωστά το ζητούμενο. Στην επισυναπτόμενη ΒΔ έκανα τις ακόλουθες αλλαγές: 1) Επειδή το τελευταίο πεδίο αρχίζει από «000», άλλαξα τα πεδία από αριθμητικά σε πεδία κειμένου. 2) Για να αποθηκεύουν διαφορετικές τιμές, δημιούργησα ευρετήρια που δεν επιτρέπουν διπλότυπες. 3) Πρόσθεσα τον παρακάτω κώδικα. Κώδικας: Private Sub cmdRnd_Click() Dim j As Integer On Error Resume Next For j = 1 To 10 With Me.Recordset .AddNew .Fields("ΠΙΣΤΟΠΟΙΗΤΙΚΟ") = CreateRdn("1", 6) .Fields("ΑΡΙΘΜΟΣ_ΠΙΣΤΟΠΟΙΗΤΙΚΟΥ") = CreateRdn("1700", 9) .Fields("ΚΩΔΙΚΟΣ_ΠΙΣΤΟΠΟΙΗΤΙΚΟΥ") = CreateRdn("000", 9) .Update End With Next Me.Recordset.MoveLast On Error GoTo 0 End Sub Public Function CreateRdn(ByVal strStart As String, Digits As Integer) As String Dim j As Integer For j = 1 To Digits - Len(strStart) strStart = strStart & Int(Rnd() * 10) Next CreateRdn = strStart End Function Φιλικά/Γιώργος |
#3
| |||
| |||
Καλησπέρα Γιώργο, Αυτό ζητάω αλλά δεν λειτουργεί στην βάση μου,προφανώς προσθέτει νέες εγγραφές αλλά όταν υπάρχουν ήδη καταχωρημένες εγγραφές οι οποίες έχουν ήδη πάρει ήδη αριθμό αναγνωριστικού δεν παίζει,έχεις καμιά ιδέα; Σε ευχαριστώ! |
#4
| |||
| |||
Γιώργο, στη βάση σου άλλαξες τον τύπο δεδομένων των πεδίων;
|
#5
| |||
| |||
Ναι,τον άλλαξα,για την ακρίβεια αντέγραψα τα πεδία στην βάση μου όπως τα είχες αλλά δεν μπορώ να καταλάβω γιατί δεν παίζει.
|
#6
| |||
| |||
Μήπως υπάρχουν και άλλα πεδία στον πίνακα; Ο κώδικας προσθέτει εγγραφές στον πίνακα. Δεν κάνει ενημέρωση παλιών εγγραφών. |
#7
| |||
| |||
Γιώργο δοκίμασε και τον παρακάτω κώδικα, που αποτελεί μια βελτίωση του προηγούμενου. Στον κώδικα αυτό, είναι ενεργοποιημένα τα μηνύματα λαθών οπότε ευκολότερα θα καταλάβεις τι φταίει. Κώδικας: Private Sub cmdRnd_Click() Dim j As Integer Dim str1 As String, str1700 As String, str000 As String On Error GoTo Err_Handler For j = 1 To 10 str1 = CreateRdn("1", 6) Do While DCount("*", "Πίνακας1", "ΠΙΣΤΟΠΟΙΗΤΙΚΟ='" & str1 & "'") > 0 str1 = CreateRdn("1", 6) Loop str1700 = CreateRdn("1700", 9) Do While DCount("*", "Πίνακας1", "ΑΡΙΘΜΟΣ_ΠΙΣΤΟΠΟΙΗΤΙΚΟΥ='" & str1700 & "'") > 0 str1700 = CreateRdn("1", 6) Loop str000 = CreateRdn("000", 9) Do While DCount("*", "Πίνακας1", "ΚΩΔΙΚΟΣ_ΠΙΣΤΟΠΟΙΗΤΙΚΟΥ='" & str000 & "'") > 0 str000 = CreateRdn("000", 9) Loop With Me.Recordset .AddNew .Fields("ΠΙΣΤΟΠΟΙΗΤΙΚΟ") = str1 .Fields("ΑΡΙΘΜΟΣ_ΠΙΣΤΟΠΟΙΗΤΙΚΟΥ") = str1700 .Fields("ΚΩΔΙΚΟΣ_ΠΙΣΤΟΠΟΙΗΤΙΚΟΥ") = str000 .Update End With Next Me.Recordset.MoveLast Exit_Sub: Exit Sub Err_Handler: MsgBox "Error #" & Err.Number & vbCrLf & Err.Description, vbOKOnly + vbCritical, "Error" Resume Exit_Sub End Sub Public Function CreateRdn(ByVal strStart As String, Digits As Integer) As String Dim j As Integer For j = 1 To Digits - Len(strStart) strStart = strStart & Int(Rnd() * 10) Next CreateRdn = strStart End Function |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
[Γενικά] Δημιουργία τυχαίων και μοναδικών 4ψήφιων αριθμών | Skakinen | Excel - Ερωτήσεις / Απαντήσεις | 3 | 05-05-15 16:09 |
Παραγωγή τυχαίων αριθμών και εκτύπωση | pm4698 | Access - Ερωτήσεις / Απαντήσεις | 1 | 03-11-14 20:38 |
Δημιουργία μοναδικών τυχαίων αριθμών | kapetang | Access samples - Χρήσιμα αρχεία & παραδείγματα | 0 | 20-10-13 18:22 |
Εκτύπωση τυχαίων Εγγραφών και αριθμών | Ms-Office-Development Team | Access - Tips & Tricks | 0 | 11-11-09 10:43 |
Εκτύπωση τυχαίων Εγγραφών και αριθμών | kon73 | Access - Ερωτήσεις / Απαντήσεις | 0 | 06-02-09 12:53 |
Η ώρα είναι 19:34.