| 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 10:39 |
| Ερώτημα προσάρτησης ή ενημερωσης | teo1976 | Access - Ερωτήσεις / Απαντήσεις | 2 | 06-12-14 20:14 |
| Βοήθεια για ερώτημα ενημέρωσης | γιώργοςΚ | Access - Ερωτήσεις / Απαντήσεις | 2 | 04-06-14 15:29 |
| [ Ερωτήματα ] Μαζική αλλαγή ΦΠΑ σε ερώτημα | artchrist73 | Access - Ερωτήσεις / Απαντήσεις | 6 | 14-12-13 21:46 |
| [ Ερωτήματα ] Ερώτημα Ενημέρωσης. | ΤΖΙΜΗΣ | Access - Ερωτήσεις / Απαντήσεις | 4 | 17-08-11 16:54 |
Η ώρα είναι 05:08.


Αλλαγή σε γραμμικό τρόπο

