![]() |
log-Απλή παρακολούθηση Εφαρμογής Access Καλημερα.Τασος οπως εχεις αναφερει εδω https://www.ms-office.gr/forum/acces...is-access.html τα εχω κανει οπως ειπες ,απλα μου βγαζει σφαλμα.Οι πινακες μου ειναι σε sql server. Runtime error "3027".Δεν ειναι δυνατη η ενημερωση .Η βαση δεδομενων η το αντικειμενο ειναι μονο για αναγνωση Function LogAction(obj As Object, Optional LastID&) With CurrentDb.OpenRecordset("tblLog", 2, dbSeeChanges) If LastID Then LastID = IIf(obj.Tag <> vbNullString, obj.Tag, -1) obj.Tag = vbNullString .MoveFirst .FindFirst "LogID = " & LastID If Not .NoMatch Then .Edit .Fields("CloseDateTime") = Now End If Else .AddNew <-- εδω μου βγαζει το error LastID = .Fields("LogID") obj.Tag = LastID .Fields("OpenDateTime") = Now .Fields("DocName") = obj.name .Fields("ComputerName") = Environ("COMPUTERNAME") .Fields("WinUser") = Environ("USERNAME") .Fields("AppUser") = App_User End If .Update .Close End With End Function |
Κοιτα αν εχεις στον πινακα tbllog καταρχην πρωτευων κλειδι |
Καλησπέρα σε όλους! Γιάννη, νομίζω ότι υπάρχει κάποιο πρόβλημα στον πίνακα σου (tblLog). Μάλλον όπως λέει και ο Χρήστος έχει να κάνει με το πρωτεύον κλειδί. Μπορείς να μας δώσεις τον κώδικα SQL (κώδικα δημιουργίας με SQL Script) του πίνακα για να δούμε τι μπορεί να συμβαίνει; Τάσος |
Καλησπερα παιδια.Αθριο που θα ειμαι στο pc θα το κοιταξω.Το script να το δημιουργησω ηγθατι τιυς πίνακες τους μετεφερα απο την access στον sql .Δεν τους εφτιαξα απευθειας στιν sql.Επισης προτου μεταφερω τον πινακα στον server δούλευε κανονικα τοπικα |
Άρα είναι σίγουρα πρόβλημα απο το πρωτεύον κλειδί. |
Καλημερα.Πρωτευον κλειδι εχει ο πινακας tblLog.Τωρα βγαζει το σφαλμα "invalid use off null" 94 στο σημειο Function LogAction(obj As Object, Optional LastID&) With CurrentDb.OpenRecordset("tblLog", 2, dbSeeChanges) If LastID Then LastID = IIf(obj.Tag <> vbNullString, obj.Tag, -1) obj.Tag = vbNullString .MoveFirst .FindFirst "LogID = " & LastID If Not .NoMatch Then .Edit .Fields("CloseDateTime") = Now End If Else .AddNew LastID = .Fields("LogID") obj.Tag = LastID .Fields("OpenDateTime") = Now .Fields("DocName") = obj.name .Fields("ComputerName") = Environ("COMPUTERNAME") .Fields("WinUser") = Environ("USERNAME") .Fields("AppUser") = App_User End If .Update .Close End With End Function ------------------ Φενεται να δουλευει τωρα με κατι αλλαγες που εκανα.Απλα επειδη της φορμες τις εχω με ελληνικους χαρακτηρες στο πινακα log μου βγαζει το ονομα τους ετσι "???s?p???_St???e?a".Αυτο μπορει να γινει ετσι ωστε να φενεται κανονικα? Function LogAction(obj As Object, Optional LastID&) With CurrentDb.OpenRecordset("SELECT * From tblLog", dbOpenDynaset, dbSeeChanges) If LastID Then LastID = IIf(obj.Tag <> vbNullString, obj.Tag, -1) obj.Tag = vbNullString .MoveFirst .FindFirst "LogID = " & LastID If Not .NoMatch Then .Edit .Fields("CloseDateTime") = Now End If Else .AddNew If Not IsNull(.Fields(0)) Then LastID = .Fields("LogID") End If obj.Tag = LastID .Fields("OpenDateTime") = Now .Fields("DocName") = obj.name .Fields("ComputerName") = Environ("COMPUTERNAME") .Fields("WinUser") = Environ("USERNAME") .Fields("AppUser") = Application.CurrentUser .Update End If .Close End With End Function |
Αγαπητέ Γιάννη Σιγουρέψου ότι μπορείς να ανοίξεις και να δημιουργήσεις νέα εγγραφή στον συνδεμένο πίνακα "tböLogs". Αν δεν μπορείς να προσθέσεις εγγραφή τότε θα πρέπει να τροποποιήσεις τον πίνακα σου στον Server σύμφωνα με το παρακάτω ερώτημα SQL : Κώδικας: USE [ms-office.gr] /*Προσάρμοσε το όνομα της βάσης*/Κώδικας: Function LogAction(obj As Object, Optional LastID As Long)Τάσος |
οκ Τασο θα το κοιταξω απο δευτερα.Σε ευχαριστω πολυ για τον χρονο σου.Καλη συνεχεια |
Καλημερα.Εκανα οσα μου εγραψες.Αφου βαλω τον user κανω login στην access μου βγαζει τωρα "error 3020,Update η CancelUpdate χωρις Editnew η Edit. Aλλαξα την γραμμη .Fields("WinUser") = Environ("USERNAME") .Fields("AppUser") = "Tasos" End If .Update .Close End With βαζωντας τα μεσα στην if και δεν μου βγαζει error.Απλα στο tblog δεν καταχωρουνται τιμες στο πεδιο "CloseDateTime" .Fields("WinUser") = Environ("USERNAME") .Fields("AppUser") = "Tasos" .Update .Close End If End With |
Καλημερα.Τασο μηπως γνωριζεις για ποιο λογο δεν παιρνει τιμες το πεδιο "CloseDateTime"? |
| Η ώρα είναι 08:04. |
Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.