Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > [ Φόρμες ] Ενημέρωση τιμών με barcode ταμειακής.

Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια!

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 24-05-13, 16:09
Όνομα: Παύλος
Έκδοση λογισμικού Office: Ms-Office 2010, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 21-05-2013
Μηνύματα: 9
Post Ενημέρωση τιμών με barcode ταμειακής.

Αυτή η βάση δεδομένων, έχει μόνο έναν πίνακα τον “Department”. Οι άλλοι δύο πίνακες βρίσκονται σε άλλη βάση και είναι “linked tables”. Αυτούς τους πίνακες δεν μπορώ να τους πειράξω γιατί ανήκουν στο πρόγραμμα της ταμειακής, το οποίο δεν βοηθάει στην καταχώρηση δεδομένων.
Δεν μπόρεσα να φτιάξω τα εξής (φόρμα Itemdb):
1. Το πεδίο “barcode” ή κάποιο άλλο από πάνω να λειτουργεί σαν αναζήτηση, και όταν δεν υπάρχει να προσθέτει νέο είδος.
2. Το “SecondCode” είναι κάτι σαν το πρωτεύον κλειδί του προγράμματος της ταμειακής, και το έχω βάλει να ενημερώνεται “Default Value ={CurrentRecord], για να πάρει τιμή το πλήθος των εγγραφών (σε νέα εγγραφή). Όμως δεν δουλεύει σωστά πάντα. Την ίδια τιμή πρέπει να παίρνει το “tblenum” (να αλλάζει η τιμή του), αλλά δεν το κατάφερα.
3. Υπάρχει τρόπος να αποφύγω διπλότυπα σε “barcode” και “SecondCode”;
4. Γίνεται το πεδίο “department” να εμφανίζει νούμερο και περιγραφή;

Σας ευχαριστώ.
Συνημμένα Αρχεία
Τύπος Αρχείου: zip ΕΙΔΗ.zip (37,7 KB, 44 εμφανίσεις)
Απάντηση με παράθεση
  #2  
Παλιά 24-05-13, 18:52
Όνομα: Κώστας
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 22-01-2012
Περιοχή: Πειραιάς
Μηνύματα: 181
Προεπιλογή

Παύλο,
κοίτα αν σου κάνει το συνημμένο
Συνημμένα Αρχεία
Τύπος Αρχείου: zip ΕΙΔΗ.zip (38,6 KB, 46 εμφανίσεις)
Απάντηση με παράθεση
  #3  
Παλιά 24-05-13, 21:06
Όνομα: Παύλος
Έκδοση λογισμικού Office: Ms-Office 2010, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 21-05-2013
Μηνύματα: 9
Προεπιλογή

Ευχαριστώ πολύ!
Το 4. (πεδίο “department”), είναι όπως το ήθελα.
Το πεδίο “barcode” όμως θα ήθελα να μπορώ να χτυπάω εκεί το barcode, και αν δεν υπάρχει να ξεκινάει απ’ ευθείας μετά από ερώτηση μία νέα εγγραφή.

Τα 2. Και 3. Νομίζω δεν άλλαξαν έτσι;
Απάντηση με παράθεση
  #4  
Παλιά 24-05-13, 21:20
Όνομα: Παύλος
Έκδοση λογισμικού Office: Ms-Office 2010, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 21-05-2013
Μηνύματα: 9
Προεπιλογή

Είχα φτιάξει παλαιότερα μετά από λίγα μαθήματα VB σε άλλη βάση το εξής:
Private Sub ΚωδΜοναδ_NotInList(NewData As String, Response As Integer)
Dim strAnswer As Integer
Response = acDataErrContinue

strAnswer = MsgBox("Νέος Προμηθευτής ;", vbInformation + vbYesNo)

If strAnswer = vbYes Then
DoCmd.OpenForm "Μονάδες", , , , , acDialog
Response = acDataErrAdded
Else
SendKeys "{Esc}"
End If
End Sub

Όπου καταχωρείται μία τιμή αυτόματα σε άλλη φόρμα, αλλά έχουν περάσει 10 χρόνια σχεδόν και δεν θυμάμαι τίποτα.

Πιστεύω θα πρέπει να γίνει κάπως έτσι:
Private Sub cbo_barcode_NotInList(NewData As String, Response As Integer)
Dim strAnswer As Integer
Response = acDataErrContinue

strAnswer = MsgBox("Νέο Προϊόν ;", vbInformation + vbYesNo)

If strAnswer = vbYes Then
DoCmd.AddNew "barcode", acDialog
Response = acDataErrAdded
Else
SendKeys "{Esc}"
End If
End Sub
Απάντηση με παράθεση
  #5  
Παλιά 25-05-13, 18:02
Όνομα: Κώστας
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 22-01-2012
Περιοχή: Πειραιάς
Μηνύματα: 181
Προεπιλογή

καλό απόγευμα στο forum.

Παύλο,
στο πεδίο cbo_barcode και στο συμβάν cbo_barcode_AfterUpdate() μετά την εντολή
On Error GoTo cbo_barcode_AfterUpdate_Err_AfterUpdate() και πριν την εντολή
cbo_barcode_AfterUpdate_Exit:
δηλαδή ενδιάμεσα αυτών των εντολών αντικατέστησε τον υπάρχοντα κώδικα με τον παρακάτω:
Κώδικας:
    Dim v_response As Variant
    Dim response As Variant
    
    DoCmd.SearchForRecord , "", acFirst, "[barcode] = " & "'" & Screen.ActiveControl & "'"
    
    v_response = DLookup("[barcode]", "Itemdb", "barcode='" & Me.cbo_barcode & "'")
    
    If IsNull(v_response) Or v_response = "" Then
     response = MsgBox("Η εγγραφή δεν υπάρχει." & vbNewLine & vbNewLine & _
                  "Θέλετε να δημιουργηθεί" & vbNewLine & _
                  "νέα εγγραφή;", _
                  vbInformation + vbYesNo, "Η εφαρμογή σας ενημερώνει ότι...")
        If response = vbYes Then
            DoCmd.GoToRecord , , acNewRec
        Else
            Exit Sub
        End If
    End If
Για το 3 “SecondCode” και διπλοτυπα, πρέπει να καταλάβω τι είναι το “SecondCode” και σε ποιό πίνακα βρίσκεται.
ΔΕΝ ΕΧΕΙΣ βάλει κλειδιά στους πίνακες και πάμε ΤΥΦΛΑ.

Στείλε μία διορθωμενη DB, με τα ερωτήματα σου.
Απάντηση με παράθεση
  #6  
Παλιά 26-05-13, 13:08
Όνομα: Παύλος
Έκδοση λογισμικού Office: Ms-Office 2010, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 21-05-2013
Μηνύματα: 9
Προεπιλογή

Καλημέρα στο forum.
Καλημέρα Κώστα.

Προσπάθησα πολύ να το προχωρήσω μόνος μου, όμως όταν δεν ξέρεις κάτι…

Μετέφερα τον κώδικα που μου έδωσες στο «cbo_barcode_AfterUpdate()», και λειτουργεί χωρίς να το αλλάξω όμως όταν επιλέξω ένα barcode από τη λίστα, πάει εκεί και μόλις πατήσω tab στο επόμενο πεδίο ξαναγυρίζει πάλι εκεί που ήταν πριν. Επίσης σε νέο barcode καλό θα ήταν να πηγαίνει στο επόμενο πεδίο αυτόματα και να έχει ήδη πάρει την τιμή που έδωσα σε αυτό.

Το ιδανικό είναι να μην υπάρχει καθόλου το «cbo_barcode», και όλα αυτά να γίνονται μέσα από το ίδιο το πεδίο barcode. Το δοκίμασα, το έκανα combo, έβαλα εκεί τον κώδικα (αφαίρεσα το «cbo_», αλλά δεν μπόρεσα να το κάνω να λειτουργήσει έτσι. Αλλά και με το πλαίσιο αυτό είναι μια χαρά.

Οι πίνακες “Itemdb” και το “tblEnum”δεν βρίσκονται πραγματικά μέσα στη βάση δεδομένων αυτή , αλλά στη βάση του προγράμματος της ταμειακής σε access 97, και τα έχω σαν συνδεδεμένους πίνακες.
Το “SecondCode” βρίσκεται μέσα στον “Itemdb”,και είναι η θέση που θα αποθηκευτεί το προϊόν στη ταμειακή (1 έως 12320), και πρέπει να αυξάνει με τις εγγραφές αντίστοιχα (χωρίς διπλότυπα).
Το “tblEnum” είναι το πλήθος των εγγραφών και όταν πατήσεις στην ταμειακή νέο προϊόν, τότε αυτό παίρνει SecondCode = tblEnum + 1. Έχει πάντα μία μοναδική εγγραφή μέσα.

Συγνώμη για την ταλαιπωρία, και σας ευχαριστώ.
Συνημμένα Αρχεία
Τύπος Αρχείου: zip ΕΙΔΗ (2).zip (43,7 KB, 16 εμφανίσεις)
Απάντηση με παράθεση
  #7  
Παλιά 26-05-13, 15:26
Όνομα: Κώστας
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 22-01-2012
Περιοχή: Πειραιάς
Μηνύματα: 181
Προεπιλογή

Καλό μεσημέρι στο forum.

Παύλο,

Αν κατάλαβα καλά
1. τα είδη που μπορείς να καταχωρήσεις είναι μέχρι και 12.320
2. ο πίνακας tblEnum έχει πάντα το σύνολο των εγγραφών του πίνακα Itemdb
3. το πεδίο SecondCode έχει τον αριθμό του record και ο αριθμός του τελευταίου είναι = tblEnum
4. σε περίπτωση διαγραφής γίνετε επαναρίθμηση;
Απάντηση με παράθεση
  #8  
Παλιά 26-05-13, 16:41
Όνομα: Παύλος
Έκδοση λογισμικού Office: Ms-Office 2010, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 21-05-2013
Μηνύματα: 9
Προεπιλογή

Ναι όλα σωστά.
Την διαγραφή θα την απαγορέψω στην φόρμα, αλλά αν γίνει τότε ναι πρέπει να γίνει επαναρίθμηση για να αντικατασταθούν τα δεδομένα που είχε κρατήσει στην μνήμη της η ταμειακή.

Το “SecondCode” νομίζω το πέτυχα δίνοντάς του DefaultValue = Val(Count([SecondCode])+1), και Requery:
Private Sub Form_BeforeInsert(Cancel As Integer)
Requery
Recordset.AddNew
End Sub

Το μόνο πρόβλημα ότι μετά την ενημέρωση νέου προϊόντος στο τελευταίο tab φεύγει και δεν σου αφήνει ανοιχτή την τελευταία καταχώρηση να την δεις.
Το “tblEnum” δεν μπορώ να το ενημερώσω με τίποτα!

Ευχαριστώ.
Συνημμένα Αρχεία
Τύπος Αρχείου: zip ΕΙΔΗ (3).zip (45,9 KB, 25 εμφανίσεις)
Απάντηση με παράθεση
  #9  
Παλιά 27-05-13, 18:15
Όνομα: Κώστας
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 22-01-2012
Περιοχή: Πειραιάς
Μηνύματα: 181
Προεπιλογή

Την καλησπέρα μου στο forum.

Παύλο,

κοίτα το συνημμένο, λογικά πρέπει να σου κάνει.

κάνει και επαναρίθμηση μετά από επιβεβαιώση διαγραφής και στο πεδίο [SecondCode] του πίνακα Itemdb και ενημερώνει ταυτόχρονα το πεδίο [enum] του πίνακα tblEnum και στην διαγραφή και στην εισαγωγή barcode.
Συνημμένα Αρχεία
Τύπος Αρχείου: zip ΕΙΔΗ.zip (45,8 KB, 58 εμφανίσεις)
Απάντηση με παράθεση
  #10  
Παλιά 27-05-13, 20:03
Όνομα: Παύλος
Έκδοση λογισμικού Office: Ms-Office 2010, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 21-05-2013
Μηνύματα: 9
Προεπιλογή

Κώστα καλησπέρα.

Όλα τέλεια.
Με γλίτωσες από πάρα πολύ κόπο και σε ευχαριστώ!

Είχα ήδη αρχίσει να ξαναδιαβάζω VBA αλλά δεν νομίζω να έφτανα ποτέ εκεί. Που χρόνος...

Αν δεν γίνομαι πολύ κουραστικός, πως μπορώ να το κάνω μετά από νέα εγγραφή να γυρνάει σε αυτή;
Το ζητούμενο είναι να μπορεί αυτός που καταχώρισε κάτι να το ξαναδεί τελειωμένο.

Αν θες μόνο περιέγραψέ μου και το βάζω εγώ.
Απάντηση με παράθεση
Απάντηση στο θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[ Φόρμες ] Αρχείο ειδών ταμειακής vourosp Access - Ερωτήσεις / Απαντήσεις 1 23-05-13 12:50
Ενημέρωση τιμών πίνακα από πεδίο φόρμας gath Access - Ερωτήσεις / Απαντήσεις 1 19-08-12 15:07
[ Φόρμες ] ΓΡΑΜΜΑΤΟΣΕΙΡΆ BARCODE artchrist73 Access - Ερωτήσεις / Απαντήσεις 11 08-04-11 00:53
MsAccess και BarCode Ετικέτες Ms-Office-Development Team Access samples - Χρήσιμα αρχεία & παραδείγματα 0 11-11-09 10:36
MsAccess και BarCode Ετικέτες kon73 Access - Ερωτήσεις / Απαντήσεις 0 07-01-09 12:50


Η ώρα είναι 21:50.