Η σελίδα μας αναβαθμίστηκε, γι' αυτό τον λόγο τα μέλη μας θα πρέπει να ζητήσουν νέο κωδικό πρόσβασης από την υπηρεσία "Αποστολή κωδικού πρόσβασης".
Εάν το email με τον νέο κωδικό δεν έρθει στο inbox κοιτάξτε και στο spam folder. Ο server είναι φρέσκος και δεν έχει το reputation που του αξίζει.

Ερώτημα Access

Συζητήσεις για την τοπική βάση δεδομένων Access της Microsoft

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
kon73
Script Master
Δημοσιεύσεις: 224
Εγγραφή: 13 Απρ 2008 23:47
Επικοινωνία:

Ερώτημα Access

Δημοσίευση από kon73 » 22 Απρ 2008 22:36

-----------------------
Φίλε Kon73

μιας και γνωρίζεις αρκετά από Access μπορείς να μου απαντήσεις στο εξής:

έχω ένα textbox όπου ο χρήστης γράφει κάποια σχόλια. Θέλω να κάνω το εξής (αν γίνεται βέβαια) στο GotFocus event να κρατάω τα σχόλια που έχουν γραφτεί, να αλλάζω γραμμή, να προσθέτω την ημερομηνία και την ώρα και αυτά να κλειδώνουν και να μην μπορούν να σβηστούν. Ουσιαστικά θέλω να μπορεί μόνο να προσθέσει ο χρήστης και όχι να κάνει edit. Τα 3 πρώτα τα έχω κάνει, το τελευταίο είναι που δυσκολεύομαι και μάλλον δεν γίνεται. Αν γνωρίζεις κάτι μπορείς να με βοηθήσεις; Παρακάτω προσπαθώ να σου εξηγήσω τι περίπου θέλω να κάνω.

Με το που φορτώνει η φόρμα:

Textbox Value:
12/04/2006: someComments

GotFocus Event -->

TextBox Value:
12/04/2006: someComments (δεν μπορεί να πειράξει)
13/04/2006: _(εδώ ξεκινάει να γράφει ο χρήστης)


---------------------------
Φίλε Antonis78
Υπάρχει μία λύση η οποία φυσικά θέλει λίγο κώδικα VBA και να γνωρίζεις βασικά πράγματα για την διάρκεια ζωής των μεταβλητών. Λοιπόν.
Ορίζεις μια μεταβλητή με scope private ας πούμε TxtLength όπου όπως καταλαβαίνεις αυτό θα είναι το μήκος του κειμένου που έχεις ήδη καταχωρήσει.(txtLength=len(txtstring) Την τιμή στην μεταβλητή θα την παίρνει πχ στο GotFocus event. ΣΤο txtString στο event Keydown θα βάλεις κάτι σαν και αυτό

if me.txtstring.selstart>=length-1 then

if KeyCode = vbKeyBack Or KeyCode = vbKeydelete Then KeyCode = 0

Me.txtstring.Locked = False
me.dirty=false
else

Me.txtstring.Locked = true

end if

Τι κάνουμε εν ολίγης. Πέρνουμε το μήκος του κειμένου πχ 11 που σημαίνει ότι όταν ο δρομέας είναι στην θέση 5 (Με το me.txtstring.selstart) τότε απερνοποιούμε τα πλήκτρα Del ή backspace Αν θέλουμε να επιτρέπουμε προσθήκες αλλά όχι διαγραφές [if KeyCode = vbKeyBack Or KeyCode = vbKeydelete Then KeyCode = 0]Ενώ αν θέλουμε ούτε προσθήκες τότε διαγραφείς το [if KeyCode = vbKeyBack Or KeyCode = vbKeydelete Then KeyCode = 0] και βάζεις μόνο το Me.txtstring.Locked = True εφόσον πρώτα αποθηκεύσουμε τυχών αλλαγές που κάναμε με το me.dirty=false.

Ενημέρωσέ με σχετικά.

Φιλικά
kon73

Το δοκίμασα και δουλεύει μια χαρά.
Βάλε όμως το Ερώτημα σου και στο Forum όχι μόνο Private Message νομίζω ότι ίσως βοηθηθούν και άλλοι ώστε και εγώ να απαντήσω και εκεί.

Απάντηση

Επιστροφή στο “MS Access”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες