Dangelo Δημοσ. 19 Απριλίου 2005 Δημοσ. 19 Απριλίου 2005 Καλησπέρα, έχω τον παρακάτω κώδικα, ο οποίος είναι μέσα στο αρχειάκη MS Access, το ;έχω ανεβάσει εδώ .. θέλω να "δανειστώ" το αρχικό menou αυτής της βάσης, διαβάζω τον κώδικα, αλλα δεν μπορώ να καταλάβω πως καλεί κάποια φόρμα να ανοίξει... κάποιος ειδικός μια γνωμη??? >Private Function HandleButtonClick(intBtn As Integer) ' This function is called when a button is clicked. ' intBtn indicates which button was clicked. ' Constants for the commands that can be executed. Const conCmdGotoSwitchboard = 1 Const conCmdOpenFormAdd = 2 Const conCmdOpenFormBrowse = 3 Const conCmdOpenReport = 4 Const conCmdCustomizeSwitchboard = 5 Const conCmdExitApplication = 6 Const conCmdRunMacro = 7 Const conCmdRunCode = 8 ' An error that is special cased. Const conErrDoCmdCancelled = 2501 Dim dbs As Database Dim rst As Recordset On Error GoTo HandleButtonClick_Err ' Find the item in the Switchboard Items table ' that corresponds to the button that was clicked. Set dbs = CurrentDb() Set rst = dbs.OpenRecordset("Switchboard Items", dbOpenDynaset) rst.FindFirst "[switchboardID]=" & Me![switchboardID] & " AND [itemNumber]=" & intBtn ' If no item matches, report the error and exit the function. If (rst.NoMatch) Then MsgBox "There was an error reading the Switchboard Items table." rst.Close dbs.Close Exit Function End If Select Case rst![Command] ' Go to another switchboard. Case conCmdGotoSwitchboard Me.Filter = "[itemNumber] = 0 AND [switchboardID]=" & rst![Argument] ' Open a form in Add mode. Case conCmdOpenFormAdd DoCmd.OpenForm rst![Argument], , , , acAdd ' Open a form. Case conCmdOpenFormBrowse DoCmd.OpenForm rst![Argument] ' Open a report. Case conCmdOpenReport DoCmd.OpenReport rst![Argument], acPreview ' Customize the Switchboard. Case conCmdCustomizeSwitchboard ' Handle the case where the Switchboard Manager ' is not installed (e.g. Minimal Install). On Error Resume Next Application.Run "ACWZMAIN.sbm_Entry" If (Err <> 0) Then MsgBox "The Switchboard Manager is not installed. To install this feature, on the Tools menu, point to Database Utilities, and then click Switchboard Manager." On Error GoTo 0 ' Update the form. Me.Filter = "[itemNumber] = 0 AND [Argument] = 'Default' " Me.Caption = Nz(Me![itemText], "") FillOptions ' Exit the application. Case conCmdExitApplication CloseCurrentDatabase ' Run a macro. Case conCmdRunMacro DoCmd.RunMacro rst![Argument] ' Run code. Case conCmdRunCode Application.Run rst![Argument] ' Any other command is unrecognized. Case Else MsgBox "Unknown option." End Select ' Close the recordset and the database. rst.Close dbs.Close HandleButtonClick_Exit: Exit Function HandleButtonClick_Err: ' If the action was cancelled by the user for ' some reason, don't display an error message. ' Instead, resume on the next line. If (Err = conErrDoCmdCancelled) Then Resume Next Else MsgBox "There was an error executing the command.", vbCritical Resume HandleButtonClick_Exit End If End Function Ευχαριστω...
UserXP Δημοσ. 20 Απριλίου 2005 Δημοσ. 20 Απριλίου 2005 Η DB περιέχει ένα πίνακα (τον "Switchboard Items"), ο οποίος περιέχει όλες τις πληροφορίες για το αρχικό μενού (φόρμα Switchboard). Μόλις κάνεις click σε κάποια επιλογή, τρέχει ο παραπάνω κώδικας. Η εντολή rst.FindFirst "[switchboardID]=" & Me![switchboardID] & " AND [itemNumber]=" & intBtn βρίσκει την εγγραφή στον πίνακα "Switchboard Items" που αντιστοιχεί στην τρέχουσα επιλογή. Η εγγραφή αυτή έχει διάφορα πεδία που καθορίζουν την ενέργεια που θα γίνει. Λίγο πιο κάτω η εντολή Select Case rst![Command] εκτελεί την αντίστοιχη εντολή για την επιλογή που έκανε ο χρήστης (π.χ. [switchboard Items].Command = 3, ανοίγει την φόρμα που καθορίζεται στο πεδίο [switchboard Items].Argument του πίνακα "Switchboard Items").
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.