Forum

Αναζήτηση στο ms-office.gr

Πάμε!
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > log-Απλή παρακολούθηση Εφαρμογής Access

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 30-07-20, 10:32
Όνομα: ΙΩΑΝΝΗΣ
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 27-01-2020
Μηνύματα: 69
Προεπιλογή 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
Απάντηση με παράθεση
  #2  
Παλιά 30-07-20, 13:33
Όνομα: Χρήστος
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 18-11-2012
Περιοχή: Deutschland
Μηνύματα: 131
Προεπιλογή

Κοιτα αν εχεις στον πινακα tbllog καταρχην πρωτευων κλειδι
Απάντηση με παράθεση
  #3  
Παλιά 30-07-20, 17:25
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.199
Προεπιλογή

Καλησπέρα σε όλους!

Γιάννη, νομίζω ότι υπάρχει κάποιο πρόβλημα στον πίνακα σου (tblLog). Μάλλον όπως λέει και ο Χρήστος έχει να κάνει με το πρωτεύον κλειδί.

Μπορείς να μας δώσεις τον κώδικα SQL (κώδικα δημιουργίας με SQL Script) του πίνακα για να δούμε τι μπορεί να συμβαίνει;

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #4  
Παλιά 30-07-20, 20:10
Όνομα: ΙΩΑΝΝΗΣ
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 27-01-2020
Μηνύματα: 69
Προεπιλογή

Καλησπερα παιδια.Αθριο που θα ειμαι στο pc θα το κοιταξω.Το script να το δημιουργησω ηγθατι τιυς πίνακες τους μετεφερα απο την access στον sql .Δεν τους εφτιαξα απευθειας στιν sql.Επισης προτου μεταφερω τον πινακα στον server δούλευε κανονικα τοπικα
Απάντηση με παράθεση
  #5  
Παλιά 31-07-20, 00:02
Όνομα: Χρήστος
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 18-11-2012
Περιοχή: Deutschland
Μηνύματα: 131
Προεπιλογή

Άρα είναι σίγουρα πρόβλημα απο το πρωτεύον κλειδί.
Απάντηση με παράθεση
  #6  
Παλιά 31-07-20, 10:17
Όνομα: ΙΩΑΝΝΗΣ
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 27-01-2020
Μηνύματα: 69
Προεπιλογή

Καλημερα.Πρωτευον κλειδι εχει ο πινακας 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

Τελευταία επεξεργασία από το χρήστη gianniskar : 31-07-20 στις 12:55. Αιτία: Λύση
Απάντηση με παράθεση
  #7  
Παλιά 31-07-20, 13:30
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.199
Προεπιλογή

Αγαπητέ Γιάννη Σιγουρέψου ότι μπορείς να ανοίξεις και να δημιουργήσεις νέα εγγραφή στον συνδεμένο πίνακα "tböLogs".

Αν δεν μπορείς να προσθέσεις εγγραφή τότε θα πρέπει να τροποποιήσεις τον πίνακα σου στον Server σύμφωνα με το παρακάτω ερώτημα SQL :
Κώδικας:
USE [ms-office.gr] /*Προσάρμοσε το όνομα της βάσης*/
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [user].[tblLog](
	[logID] [int] IDENTITY(1,1) NOT NULL,
	[CloseDateTime] [datetime2](0) NULL,
	[OpenDateTime] [datetime2](0) NULL,
	[DocName] [nvarchar](50) NULL,
	[ComputerName] [nvarchar](50) NULL,
	[WinUser] [nvarchar](50) NULL,
	[AppUser] [nvarchar](50) NULL,
 CONSTRAINT [tblLog$PrimaryKey] PRIMARY KEY CLUSTERED 
(
	[logID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, 
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
Κατόπιν δοκίμασε τον παρακάτω κώδικα:

Κώδικας:
Function LogAction(obj As Object, Optional LastID As Long)
    With CurrentDb.OpenRecordset("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") = Format(Now, "yyyy-MM-dd hh:mm:ss")
            End If
        Else
            .AddNew
            LastID = Nz(.Fields("LogID"), 0)
            obj.Tag = LastID
            .Fields("OpenDateTime") = Format(Now, "yyyy-MM-dd hh:mm:ss")
            .Fields("DocName") = obj.Name
            .Fields("ComputerName") = Environ("COMPUTERNAME")
            .Fields("WinUser") = Environ("USERNAME")
            .Fields("AppUser") = App_User
        End If
        .Update
        .Close
    End With
End Function
Καλή συνέχεια!

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

Τελευταία επεξεργασία από το χρήστη Tasos : 31-07-20 στις 17:05.
Απάντηση με παράθεση
  #8  
Παλιά 31-07-20, 13:47
Όνομα: ΙΩΑΝΝΗΣ
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 27-01-2020
Μηνύματα: 69
Προεπιλογή

οκ Τασο θα το κοιταξω απο δευτερα.Σε ευχαριστω πολυ για τον χρονο σου.Καλη συνεχεια
Απάντηση με παράθεση
  #9  
Παλιά 03-08-20, 07:29
Όνομα: ΙΩΑΝΝΗΣ
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 27-01-2020
Μηνύματα: 69
Προεπιλογή

Καλημερα.Εκανα οσα μου εγραψες.Αφου βαλω τον 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
Απάντηση με παράθεση
  #10  
Παλιά 10-08-20, 07:31
Όνομα: ΙΩΑΝΝΗΣ
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 27-01-2020
Μηνύματα: 69
Προεπιλογή

Καλημερα.Τασο μηπως γνωριζεις για ποιο λογο δεν παιρνει τιμες το πεδιο "CloseDateTime"?
Απάντηση με παράθεση
Απάντηση στο θέμα

Εργαλεία Θεμάτων
Τρόποι εμφάνισης

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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[ Ασφάλεια] Update εφαρμογής ACCESS μέσω Internet vraxnakisg Access - Ερωτήσεις / Απαντήσεις 7 18-06-15 02:29
Αναβάθμιση εφαρμογής σε Access parara Access - Ερωτήσεις / Απαντήσεις 5 24-01-13 22:05
Απενεργοποίηση μακροεντολής με την εκκίνηση μιας εφαρμογής σε Access 2003, 2007 alex Access - Ερωτήσεις / Απαντήσεις 4 22-11-11 21:51
[Συναρτήσεις] Απλή συνάρτηση if PanosPan Excel - Ερωτήσεις / Απαντήσεις 13 25-05-10 09:29
Απλή παρακολούθηση Εφαρμογής Access Tasos Access - Tips & Tricks 0 22-03-10 12:50


Η ώρα είναι 06:58.