jamespr Δημοσ. 16 Μαΐου 2008 Δημοσ. 16 Μαΐου 2008 Παιδιά γεια σας. Ελπίζω όλοι να είστε καλά και να περνάτε ακόμα καλύτερα. Ακόμα μία φορά τα βρήκα σκούρα με την Access και τη vba. Θέλω να φτιάξω ένα κουμπί που θα ανοίγει μία φόρμα αλλά πρώτα θα χρειάζεται κωδικό αλλιώς θα επιστρέφει πίσω. Πάλαιψα έφτιαξα ένα κομμάτι κώδικα (αυτός που φαίνεται κάτω) (λάθος) και δεν ξέρω πως να δηλώσω το όνομα της φόρμας και γενικά αν κάποιος μπορεί να με βοηθήσει στα λάθη που σίγουρα έχω κάνει.... Σας ευχαριστώ πάρα πολύ για το χρόνο σας προκαταβολικά. Κάθε φορά είστε τέλειοι με τις γνώσεις σας. Private Sub Εντολή41_Click() On Error GoTo Err_Εντολή41_Click Dim pw As String pw = InputBox$("Give Access Code", "Access code") If pw = "Access code" Then stDocName =???? DoCmd.OpenForm stDocName, , , stLinkCriteria ???? Else MsgBox "Wrong Access Code" End If End Sub
amorealex Δημοσ. 16 Μαΐου 2008 Δημοσ. 16 Μαΐου 2008 Για δοκίμασε: Private Sub Εντολή41_Click() On Error GoTo Err_Εντολή41_Click Dim pw As String pw = InputBox$("Give Access Code", "Access code") If pw = "Access code" Then stDocName ="Onoma_Formas" DoCmd.OpenForm stDocName Else MsgBox "Wrong Access Code" End If End Sub
jamespr Δημοσ. 16 Μαΐου 2008 Μέλος Δημοσ. 16 Μαΐου 2008 Φίλε σε ευχαρσιτώ πολύ για το χρόνο σου αλλά μου βγάζει λάθος που σαν τίτλο έχει Complile error και μέσα Label not found και κιτρινίζει την πρώη γραμμή. Κάνω κάτι λάθος; Πάω στις ιδιότητες του κουμπιου, με το κλικ, κάνω δόμηση κώδικα, γράφω τον κώδικα αποθηκεύω. Όταν πατάω το κουμπί μου βγάζει το λάθος που σου είπα. Ευχαριστώ και πάλι.
amorealex Δημοσ. 17 Μαΐου 2008 Δημοσ. 17 Μαΐου 2008 Έχεις δίκο! Για δοκίμασε: Private Sub Εντολή41_Click() Dim stDocName As String Dim stLinkCriteria As String Dim pw As String stDocName = "Onoma_formas" pw = InputBox("Give Access Code", "Access Code") If pw = "mypass" Then DoCmd.OpenForm stDocName, , , stLinkCriteria Else MsgBox "Wrong Access Code" End If End Sub
jamespr Δημοσ. 18 Μαΐου 2008 Μέλος Δημοσ. 18 Μαΐου 2008 Σας ευχαριστώ πάρα πολύ κύριε amorealex κάνει ότι ακριβώς έψαχνα. Προσπαθώ να μάθω αλλά ακόμα θέλω πολύ διάβασμα και χρόνο. Σας ευχαριστώ και πάλι. Μήπως ξέρετε πως μπορώ να απενεργοπποιήσω το shift από το άνοιγμα; Όποια προσπάθεια σε κώδικα και να κάνω βγάζει σφάλμα ούτε τη νοοτροπία δεν μπορώ να βρω. Σας ευχαρίστώ για το χρόνο σας. Να είστε καλά και περνάτε ακόμα καλύτερα.
amorealex Δημοσ. 18 Μαΐου 2008 Δημοσ. 18 Μαΐου 2008 Για δες εδώ: http://www.databasedev.co.uk/disable_shift_bypass.html
jamespr Δημοσ. 18 Μαΐου 2008 Μέλος Δημοσ. 18 Μαΐου 2008 Σας ευχαριστώ πολύ κύριε amorealex. Προσπαθώ αλλά δεν τα καταφέρνω. Πάω στη vba, tools references και το microsoft dao 3.6 είναι ενεργοποιημένο. Πάω βρίσκω τα αρχεία (*.exe; *.dll)" εκεί που μου λέει C:\Program Files\Common Files\Microsoft Shared\DAO), αλλά δεν καταλαβαίνω τι πρέπει να κάνω όταν λέει "Then explicitly dimension yourcode, i.e. Dim db As DAO.Database, prp As DAO.Property". Τέλος μου ζητάει να βάλω τον κώδικα σε μία δημόσια module. Τι είναι αυτή και πως τη δημιουργώ. Ακόμα πάω να φτιάξω το κουμπί αλλά χτυπάει λάθος. Λογικά θα ψάχνει τον παραπάνω κώδικα στη δημόσια Module. Ξέρω σας ζάλισα είναι πάρα πολλές απορίες δεν μπορείτε να ασχολείστε μόνο μαζί μου. Όποτε έχετε χρόνο και διάθεση. Έχετε κάνει ήδη πάρα πολλά σας ευχαριστώ και πάλι για το χρόνο σας θα περιμένω τις οδηγίες σας. Να είστε καλά.
bilco Δημοσ. 19 Μαΐου 2008 Δημοσ. 19 Μαΐου 2008 Σας ευχαριστώ πολύ κύριε amorealex. Προσπαθώ αλλά δεν τα καταφέρνω. Πάω στη vba, tools references και το microsoft dao 3.6 είναι ενεργοποιημένο. Πάω βρίσκω τα αρχεία (*.exe; *.dll)" εκεί που μου λέει C:\Program Files\Common Files\Microsoft Shared\DAO), αλλά δεν καταλαβαίνω τι πρέπει να κάνω όταν λέει "Then explicitly dimension yourcode, i.e. Dim db As DAO.Database, prp As DAO.Property". Τέλος μου ζητάει να βάλω τον κώδικα σε μία δημόσια module. Τι είναι αυτή και πως τη δημιουργώ.Ακόμα πάω να φτιάξω το κουμπί αλλά χτυπάει λάθος. Λογικά θα ψάχνει τον παραπάνω κώδικα στη δημόσια Module. Ξέρω σας ζάλισα είναι πάρα πολλές απορίες δεν μπορείτε να ασχολείστε μόνο μαζί μου. Όποτε έχετε χρόνο και διάθεση. Έχετε κάνει ήδη πάρα πολλά σας ευχαριστώ και πάλι για το χρόνο σας θα περιμένω τις οδηγίες σας. Να είστε καλά. Στο http://support.microsoft.com/kb/826765 τα εξηγεί λίγο καλύτερα. Για το module στον editor της vba κάνεις δεξί κλικ αριστερά στη λίστα στο όνομα της βάσης σου και Insert -> Module
jamespr Δημοσ. 19 Μαΐου 2008 Μέλος Δημοσ. 19 Μαΐου 2008 Τέλεια όλα δουλεύουν ρολόι όσον αφορά το κομμάτι της απενεργοποίησης του shift. Προσπαθώ να φτιάξω όμως το κουμπί με τον κωδικό για ενεργοποίηση πάλι Private Sub bDisableBypassKey_Click() On Error GoTo Err_bDisableBypassKey_Click 'This ensures the user is the programmer needing to disable the Bypass Key Dim strInput As String Dim strMsg As String Beep strMsg = "Do you want to enable the Bypass Key?" & vbCrLf & vbLf & _ "Please key the programmer's password to enable the Bypass Key." strInput = InputBox(Prompt:=strMsg, title:="Disable Bypass Key Password") If strInput = "TypeYourBypassPasswordHere" Then SetProperties "AllowBypassKey", dbBoolean, True Beep MsgBox "The Bypass Key has been enabled." & vbCrLf & vbLf & _ "The Shift key will allow the users to bypass the startup & _ options the next time the database is opened.", _ vbInformation, "Set Startup Properties" Else Beep SetProperties "AllowBypassKey", dbBoolean, False MsgBox "Incorrect ''AllowBypassKey'' Password!" & vbCrLf & vbLf & _ "The Bypass Key was disabled." & vbCrLf & vbLf & _ "The Shift key will NOT allow the users to bypass the & _ startup options the next time the database is opened.", _ vbCritical, "Invalid Password" Exit Sub End If Exit_bDisableBypassKey_Click: Exit Sub Err_bDisableBypassKey_Click: MsgBox "bDisableBypassKey_Click", Err.Number, Err.Description Resume Exit_bDisableBypassKey_Click End Sub αλλά τίποτα. Μετά προσπαθώ με το δεύτερο κομμάτι του κώδικα Function ap_EnableShift() 'This function enables the SHIFT key at startup. This action causes 'the Autoexec macro and the Startup properties to be bypassed 'if the user holds down the SHIFT key when the user opens the database. On Error GoTo errEnableShift Dim db As Database Dim prop As Property Const conPropNotFound = 3270 Set db = CurrentDb() 'This next line of code disables the SHIFT key on startup. db.Properties("AllowByPassKey") = True 'function successful Exit Function errEnableShift: 'The first part of this error routine creates the "AllowByPassKey 'property if it does not exist. If Err = conPropNotFound Then Set prop = db.CreateProperty("AllowByPassKey", _ dbBoolean, True) db.Properties.Append prop Resume Next Else MsgBox "Function 'ap_DisableShift' did not complete successfully." Exit Function End If End Function πάλι τίποτα έτσι κλειδώνομαι έξω.... τι να κάνω; Ευτυχώς δούλευα σε αντίγραφο. Περιμένω οδηγίες προς τα παρών μόνο το κλείδωμα ξέρω να κάνω... Σας ευχαριστώ πάρα πολύ για όλα
jamespr Δημοσ. 20 Μαΐου 2008 Μέλος Δημοσ. 20 Μαΐου 2008 Τα κατάφερα.... έβαλα το πρώτο καμμάτι του κώδικα που είναι στη σελίδα http://support.microsoft.com/kb/826765 σε μία module, μετά αυτό σε μία μακροεντολή και αυτή σε ένα κουμπί. Το ίδιο έκανα με το δεύτερο κομμάτι και σε άλλο κουμπί. Με το ένα κλειδώνει το shift και με το αλλο το ξεκλειδώνει. Σας ευχαριστώ πολύ όλους για τη βοήθειά σας και κυρίως για το χρόνο σας. Θα προσπαθήσω να μάθω και άλλα και αν έχω απορίες οι γνώσεις σας ειναι πάντα εδώ για λύσεις. Και πάλι σας ευχαριστώ. Να περνάτε όλοι καλά με υγεία
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.