Προς το περιεχόμενο

VB exhghseis pls...


Dangelo

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα,

έχω τον παρακάτω κώδικα, ο οποίος είναι μέσα στο αρχειάκη 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

 

Ευχαριστω...

Δημοσ.

Η 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").

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...