Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Ερώτημα ενημέρωσης - Αλλαγή πρώτου γράμματος
Γεια σε όλους! Σε έναν πίνακα, έχω ένα πεδίο "Κωδικός" που είναι της μορφής Α1-2017-01. Με κανόνα επικύρωσης το πρώτο γράμμα περιορίζεται στα Α, Β, Γ, Δ, Ε, Σ και G. Θέλω να φτιάξω ένα ερώτημα ενημέρωσης που να μετατρέπει το Α σε Β, το Β σε Γ, το Γ σε Δ, το Δ σε Ε, το Σ σε G και το G να το αφήνει όπως είναι. Το υπόλοιπο μέρος του κωδικού θα παραμένει το ίδιο. Ελπίζω να μην είναι δύσκολο. Ευχαριστώ εκ των προτέρων. |
#2
| |||
| |||
Καλησπέρα Χρειάζονται κάποιες διευκρινίσεις. Για παράδειγμα: 1) Το ερώτημα θα το τρέξουμε μία φορά ή περισσότερες; 2) Στην πρώτη ενημέρωση όσοι κωδικοί αρχίζουν από Ε πώς θα ενημερωθούν; 3) Αν το ερώτημα θα το τρέχουμε πολλές φορές, σε κάθε εκτέλεση, τί αλλαγές θα κάνει; |
#3
| |||
| |||
Γεια σας! Ευχαριστώ πολύ για την ανταπόκριση. 1) Το ερώτημα θα τρέχει μια φορά τον χρόνο. 2) Το Ε θα γίνεται Σ. 3) Μόνο το πρώτο γράμμα θα αλλάζει, με τον τρόπο που αναφέρω παραπάνω. Νομίζω όμως ότι οι αλλαγές πρέπει να γίνονται με συγκεκριμένη σειρά, ώστε να μη δημιουργηθούν διπλότυπα. Δηλαδή, πρέπει να αλλάζουν πρώτα οι κωδικοί που ξεκινάνε με Σ και στη θέση του Σ να μπαίνει το G, μετά οι κωδικοί που ξεκινάνε με Ε και να μετατρέπεται το Ε σε Σ και συνεχίζουμε αναλόγως με το Δ, Γ, Β και Α. |
#4
| |||
| |||
Καλησπέρα Για να ελέγχουμε τη σειρά ενημέρωσης προτείνω: 1) Τη δημιουργία 6 ερωτημάτων με την παρακάτω μορφή. Κώδικας: UPDATE Table1 SET Table1.Κωδικός = "Σ" & Mid([Κωδικός],2,20) WHERE Left([Κωδικός],1)="Ε"; . Στη συνέχεια τρέχουμε τα ερωτήματα με τη σειρά που θέλουμε. 2) Να χρησιμοποιήσουμε κώδικα. Στο συμβάν κλικ ενός κουμπιού φόρμας αντιγράφουμε τον παρακάτω κώδικα. Κώδικας: Private Sub cmdUpdate_Click() 'Μάλλον θα χρειαστεί αναφορά στη βιβλιοθήκη Microsoft DAO 2.8 Object Library 'Μενού Tools > References ....> τσεκάρισμα βιβλιοθήκης Dim strStart As Variant, strTo As Variant Dim i As Long, rs As dao.Recordset, strSQL As String strStart = Array("Σ", "Ε", "Δ", "Γ", "Β", "Α") strTo = Array("G", "Σ", "Ε", "Δ", "Γ", "Β") For i = 0 To UBound(strStart) 'Το Table1 να αντικατασταθεί με το πραγματικό όνομα του πίνακα strSQL = "Select [Κωδικός] From Table1 Where Left([Κωδικός],1)='" & strStart(i) & "'" Set rs = CurrentDb.OpenRecordset(strSQL) If rs.RecordCount Then Do Until rs.EOF rs.Edit rs![Κωδικός] = strTo(i) & Mid(rs![Κωδικός], 2) rs.Update rs.MoveNext Loop End If Next MsgBox "Η ενημέρωση ολοκληρώθηκε." exitSub: Exit Sub errHandler: MsgBox Err.Description, vbCritical, "Error #" & Err.Number End Sub |
#5
| |||
| |||
Σας ευχαριστώ πάρα πολύ!!!
|
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
ερώτημα ενημέρωσης | tzvangel | Access - Ερωτήσεις / Απαντήσεις | 4 | 10-02-15 11:39 |
Ερώτημα προσάρτησης ή ενημερωσης | teo1976 | Access - Ερωτήσεις / Απαντήσεις | 2 | 06-12-14 21:14 |
Βοήθεια για ερώτημα ενημέρωσης | γιώργοςΚ | Access - Ερωτήσεις / Απαντήσεις | 2 | 04-06-14 16:29 |
[ Ερωτήματα ] Μαζική αλλαγή ΦΠΑ σε ερώτημα | artchrist73 | Access - Ερωτήσεις / Απαντήσεις | 6 | 14-12-13 22:46 |
[ Ερωτήματα ] Ερώτημα Ενημέρωσης. | ΤΖΙΜΗΣ | Access - Ερωτήσεις / Απαντήσεις | 4 | 17-08-11 17:54 |
Η ώρα είναι 20:11.