Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   Πρόβλημα με κώδικα VBA (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/3334-problima-me-kodika-visual-basic-applications.html)

γιώργοςΚ 07-10-14 16:07

Αγαπητέ Γιώργο,

Ευχαριστώ για τις διευκρινήσεις αλλά και για την οποιαδήποτε βοήθεια. Ωστόσο, υπενθυμίζω πως έχω κατ' επανάληψη σημειώσει ότι :

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

Δεν φυμίζομαι φίλε Γιώργο για τις γνώσεις προγραμματισμού είτε της access είτε της Vba. ¨Εχω αναφέρει αρκετές φορές σε άλλες δημοσιεύσεις θεμάτων μου ότι : "Άτομα σαν και εσένα ευτυχώς που υπάρχουν στο φόρουμ μας και το κάνουν ακόμη πιο πλούσιο" και με κάθε ευκαρία εκφράζω τις ιδιαίτερες ευχαριστίες μου σε εσένα. Τώρα σε ότι αφορά το σχόλιο σου : Γράφω το κείμενο αυτό, επειδή, κατά τη γνώμη μου, το φόρουμ θα πρέπει να συμβάλλει στη χρήση από τα μέλη του των καλύτερων τεχνικών
λυπάμαι που με τις ελλειπή γνώσεις μου σε vba "μπορεί να μήν συμβάλλω τα μέγιστα" έτσι ώστε τα υπόλοιπα παιδιά στο φόρουμ να παραδειγματισθούν "κακός" απο την έλλειψη γνώσεων Vba μου.

Σε ευχαριστώ για μια ακόμη φορά για την βοήθεια σου. Θα προσπαθήσω πρώτα να κατανοήσω τον κώδικα φίλε Γιώργο και εφόσον μπορέσω να τον διαμορφώσω για την δική μου περίπτωση σε διαβεβαιώ ότι θα τον χρησιμοποιήσω.

γιώργοςΚ 07-10-14 16:45

Γιώργο παραθέτω τον κώδικα σου και θα εκτιμούσα εάν μπορούσες να βοηθήσεις

ο κώδικας "κτυπάει" εφόσον στον tblLogSVN δεν υπάρχουν εγραφές.... Καμιά εισήγηση?

Dim rs As DAO.Recordset

Set rs = CurrentDb.OpenRecordset("SELECT TOP 2 SVNnumber FROM tblLogSVN")
rs.MoveLast
If rs.RecordCount Then
If Nz(Me.SVN1, "") = "" Then
rs.MoveFirst
Me.SVN1 = rs!SVNnumber
Me.Pc1 = True
ElseIf Nz(Me.SVN2, "") = "" And rs.RecordCount > 1 Then
rs.MoveLast
Me.SVN2 = rs!SVNnumber
Me.Pc2 = True
Else
'Åäþ áíôéìåôùðßæåôáé ç ðåñßðôùóç ðïõ Ý÷ïõí ðñïóôåèåß 2 Pc
'Áí äå ÷ñåéÜæåôáé ôï ôìÞìá Else ìðïñåß íá äéáãñáöåß.
MsgBox "Äå ìðïñïýí íá ðñïóôåèïýí Üëëá Pc. Ç åöáñìïãÞ èá êëåßóåé"
Application.Quit
End If
End If

End Sub

kapetang 07-10-14 18:06

Οφείλεται σε λάθος θέση της εντολής rs.MoveLast

Τοποθέτησέ την μετά την εντολή IF rs.recordCount Then

γιώργοςΚ 07-10-14 18:23

Γιώργο τώρα δούλεψε μια χαρά.

Σε περίπτωση κατά την οποία εφόσον αναγνωρισθεί το SvnNumber (με την διαδικασία που εξήγησα) πώς θα μπορούσα να κάνω Append το SvnNumber απο τον tblSVN μέσα στον tblLogSVN μέσω Vba?

Σε ευχαριστώ και πάλι

kapetang 08-10-14 10:18

Καλημέρα

Γιώργο σου δόθηκε κώδικας:

1) Για να βρίσκεις το σειριακό αριθμό του σκληρού δίσκου (svnNumber), ενός Pc.

2) Για να αποθηκεύεις τον svnNumber σε πίνακα (tblSVN) μαζί με την ημερομηνία και την ώρα.

Με τον ίδιο τρόπο και με μικρή προσαρμογή (αλλαγή του ονόματος του πίνακα) μπορεί να αποθηκευτεί και στον πίνακα tblLogSVN.

Σημειώνω ότι ο πίνακας tblLogSVN δε χρειάζεται ξεχωριστό πεδίο για την ώρα (σ’ ένα πεδίο Date/Time μπορεί να αποθηκευτεί και η ημερομηνία και η ώρα).

3) Για να βρίσκεις, αν o svnNumber υπάρχει σε κάποιο πίνακα.

4) Στο παρόν θέμα, κώδικας για τη διαχείριση των πεδίων SVN1, SVN2 του πίνακα tblLogin.

Έχω τη γνώμη, ότι διαθέτεις όλα τα απαιτούμενα εργαλεία για να πετύχεις αυτό που θέλεις.

Εσύ γνωρίζεις τι ακριβώς θέλεις και εσύ θα πρέπει να συνδυάσεις τα κομμάτια του κώδικα.

Φιλικά/Γιώργος

γιώργοςΚ 08-10-14 10:54

:thanks:Καλημέρα Γιώργο,

Με τον κώδικα μιά χαρά. Η διαφορά σχετικά με την ενημέρωση και του tblLogSVN έγγυτε στο γεγονός ότι με τον κώδικα που παρομοιάζει με την σχετική διαδικασία ενημέρωσης του tblSVN είναι ότι: Εφόσον "τρέξει" η διαδικασία ενημέρωσης του εν λόγο πίνακα (tblSVN ή και tblLogSVN) κάνει overwrite το record και δεν το προσθέτει ώς νέο. Βέβαια στην περίπτωση κατά την οποία ο πίνακας είναι κενός, κανένα πρόβλημα.. Το "πρόβλημα" είναι όταν ένας πίνακας έχει έστω και μια εγραφή... ακριβώς για αυτό τον λόγο ρώτησα εάν και κατά πόσο θα μπορούσα να ενημερώσω τον tblLogSVN με Append Query μέσω Vba..

Σε κάθε περίπτωση σε ευχαριστώ για όλα. Νάσαι καλά και πάντα γερός:thanks:

kapetang 08-10-14 11:26

Γιώργο, ο κώδικας που δόθηκε:

Κώδικας:

    strSql = "INSERT INTO tblSVN (SvnNumber,DateAdded) VALUES(" & _
            Serial & ", #" & Format(Now(), "m/d/yyyy mm:ss") & "#)"
    CurrentDb.Execute (strSql)

Προσθέτει εγγραφές. Δεν αντικαθιστά τις παλιές

γιώργοςΚ 08-10-14 16:04

Γειά σου Γιώργο,

Δοκίμασα τον κώδικα που επισυνάπτεις και όντως, έχεις δίκιο.

Σε ευχαριστώ για μιά ακόμη φορά.


Η ώρα είναι 11:43.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2