Adding A Button To The Switchboard Should Be Easy, Right?
Jan 3, 2006
Hi! Everyone on this forum has been very helpful so far, and I could really use some expertise now. I'm trying to update an existing DB designed by someone else (no longer here). I need to add a button to the switchboard for 2006, but I don't understand the code that has been written for the form I am trying to update. I've posted the code below. If anyone can help me decipher it enough to add my button, I would really appreciate it. My new button should be the 9th one. Thanks in advance:
Private Sub Form_Open(Cancel As Integer)
' Minimize the database window and initialize the form.
' Move to the switchboard page that is marked as the default.
Me.Filter = "[ItemNumber] = 0 AND [Argument] = 'Default' "
Me.FilterOn = True
End Sub
Private Sub Form_Current()
' Update the caption and fill in the list of options.
Me.Caption = Nz(Me![ItemText], "")
FillOptions
End Sub
Private Sub FillOptions()
' Fill in the options for this switchboard page.
' The number of buttons on the form.
Const conNumButtons = 9
Dim dbs As Database
Dim rst As Recordset
Dim strSQL As String
Dim intOption As Integer
' Set the focus to the first button on the form,
' and then hide all of the buttons on the form
' but the first. You can't hide the field with the focus.
Me![Option1].SetFocus
For intOption = 2 To conNumButtons
Me("Option" & intOption).Visible = False
Me("OptionLabel" & intOption).Visible = False
Next intOption
' Open the table of Switchboard Items, and find
' the first item for this Switchboard Page.
Set dbs = CurrentDb()
strSQL = "SELECT * FROM [Switchboard Items]"
strSQL = strSQL & " WHERE [ItemNumber] > 0 AND [SwitchboardID]=" & Me![SwitchboardID]
strSQL = strSQL & " ORDER BY [ItemNumber];"
Set rst = dbs.OpenRecordset(strSQL)
' If there are no options for this Switchboard Page,
' display a message. Otherwise, fill the page with the items.
If (rst.EOF) Then
Me![OptionLabel1].Caption = "There are no items for this switchboard page"
Else
While (Not (rst.EOF))
Me("Option" & rst![ItemNumber]).Visible = True
Me("OptionLabel" & rst![ItemNumber]).Visible = True
Me("OptionLabel" & rst![ItemNumber]).Caption = rst![ItemText]
rst.MoveNext
Wend
End If
' Close the recordset and the database.
rst.Close
dbs.Close
End Sub
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 "WZMAIN80.sbm_Entry"
If (Err <> 0) Then MsgBox "Command not available."
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
Ok, I'm absolutely positive I'm missing something totally simple here... Someone give me a clue...
I have a database whereby I track academic performance of students in our program. I am trying to use last year's table to calculate how many hours each student earned during all three semesters.
In many cases, students did not enroll in all three semesters, so I am dealing with Null values in many of the fields. The easiest way would be to do something with the Nz function such as follows:
But what I am getting is the numbers in a string! Say, a student earned 12 hours in the fall, and 10 hours in the spring, and didn't attend at all in the summer. The answer I'm getting in the calculated field is 1210, rather than 22. I've tried about 50 permutations of the above expression and I truly can't see why it isn't adding the fields together... I have also tried this with parenthesis around each Nz: (Nz([HrsEarnedFall],0)) , same result.
The Sum function does not recognize Null fields, but I thought I could use the Nz function to account for that. If I can't use Nz with Sum, how the heck do I add these numbers?
What I need to do is create a table with these hours totaled, and then update my main table from it. I could conceivably add the fields together in a report, but then I don't have any way to update my main table other than simple data entry.
I really do not want to have to go back into almost 700 records and add in zeros in multiple fields just because I'm missing something stupid.
You'd think an application as powerful as Access would be able to add 2+2 and get 4... Any help would be most appreciated...
'Filter frmRhinitis based on search criteria Form_frmRhinitis.RecordSource = "select * from tblBaseline where " & GCriteria Form_frmRhinitis.Caption = "Customers (" & cboSearchField.Value & " contains '*" & txtSearchString & "*')"
MsgBox "Results have been filtered."
End If
End Sub
However, even if no records match the criteria the window will return a "Results have been filtered" but return a blank form. How do I include code that will return a "Match cannot be found" MsgBox if the search string isnt found?
I was wondering if it was possible to do this, currently if I need to add a new record, I have to add it all in the tables section, this works fine but would be easier if it could be done through the switchoard somehow.
What is the best way to implement a search function into a switchboard? I need this search function to allow a user to check a database for specific names, so that they do not enter duplicates. Thanks in advance for all advice
I'm currently working through developing my first database.
Basically, what I would like is for a query to run from a command button.
The query should look at a field in a table (a yes/no field) and report back the ones that have been filled in.
I know how to run the query from the access 'Query' window, BUT, I would like this query to run from a click of a command button on a form.
I've looked it up in a book, which explains about SQL, and didn't really understand it. I've also searched on here, but people talk about Macro's, and I don't know anything about them.
Is there anyway to set differentbutton images for each section of a switch board.
Say I have a main switch board with "Customers", "Orders" and "Products". I want each one of these buttons to have an image.
However, when you click on "Customers" you go to the customers swicthboard, which then has "add", "delete" and "edit". I would like these three buttons to have images, but different images to those on the main form.
is it possible to create a back button on your switchboard so from your main switchboard your subwitchboards or your sub sub switchboards you just click the back button to go the the previous switchboard?
I have created a database where my boss wants a password on the one button to limit access. Is this possible. The button actually opens the Database Window (no one else knows the bypass to open it F11)
hello, I have a main switchboard that has a button which opens another switchboard, the button is labelled (has the caption) “Reports” but the trouble is when this other switchboard opens the button on here also has the name “reports” but I want it to be named: “open employee report” and if I change the name of the button on the other switchboard it changes it on both switchboards :mad: , anyone know of a way around this?
I found this simple password code that I use to open some forms: Code:Dim x As Stringx = "password"Dim y As Stringy = InputBox("Enter password for form")If x <> y ThenMsgBox ("Invalid password")DoCmd.CancelEventEnd If I would like to use it in a switchboard button, but the following statement is OnClick already "=HandleButtonClick(4)". How can I incorporate this statement with the code?
(I guess I don't really understanding how the auto-switchboard works.)
Is it possible to create a command button on an Access switchboard that will automatically backup a database? What code would I need? The command button wizard doesn't handle this task.
I am building a database with a single table of records. I have created a form to allow new entries to be made to the table in a user-friendly way.
The problem I’m stuck with is how do I restrict the addition of new records on the form? I want the new record to only be added to the table upon the click of a button, but at present if I tab through, or exit the form the record is saved anyway.
Not all fields on the form are required input so I’m thinking that validation of every field is not the way to go.
I only ever want the record to be saved if a user clicks on a button and under no other circumstance.
I've been trawling through the posts back to about page 15 so any help would be appreciated.
I am a neophyte Access 2003 user attempting to build a new Form (all about Lynyrd Skynyrd but that is for discussion in a different forum)
When I attempt to add a Command Button to a Form in Design view, I get stepped through the wizard and all seems to be going well to enable me to add an “Add a New Record” button.
But at the end I get an error message that says “Application Defined or Object Defined Error.” What do I do next?
Thanks for your help, Southern Rock is depending on it.
Getting better - but still far from being competent with VB can someone please help me with the following code.
On the On Click event of a command button I want to call up a field (from another table/form) and add A to it so it lands in a text box. So using the following example -
The table/form is called Patient and the field in question is URNumber. The form I want to put the command button is called RelatedDetails, and in a text box (IDNo) I want to put code that creatsed URNumber with an A on the end (or the beginning) Any ideas?
I would like to add a button to a form that will print the form with the current record in it. Also, to add a level of difficulty, there are 8 subforms attached to the form. As I already have the form developed, I don't want to reinvent the wheel and go off and create a report with 8 subreports. Is this possible? If so, Can we force all the data on the form to one page?
I am having issues with assigning search criteria for the "Find Next Button". I used the wizard and it does not ask what criteria to use for Find Next. I am assuming there is a bit of VBA I need to add to the generic Find Next button. This is what comes up when I use the wizard to create the button:
Private Sub Command118_Click() On Error GoTo Err_Command118_Click Screen.PreviousControl.SetFocus DoCmd.FindNext Exit_Command118_Click: Exit Sub Err_Command118_Click: MsgBox Err.Description Resume Exit_Command118_Click End Sub
How do I define the criteria for the next record. I want the db to move to the next record with the same [PtMRN].
My job has recently decided that I need to build a database of test pictures, I've read many forums on the link pictures / putting browse button as I gather it makes the database too large with attachments.
My problem is I think I grasp the concept but I cant seem to use the code / Im not sure where im actually putting the code.
Where do I put this ? does this go in the field or in a macro ?
Also for the browse to button I have this
Private Sub Explore_Click() ' Gets a filename from the filedialog control and puts it into the ' "Filename" textbox control. ' Be sure to rename the Common Dialog Control "cd1"
[Code] ....
When i try to put this into a button it doesnt work.
I've attached my amazing database for reference, you will see pictures attached, these were before I knew about linking and I want the links to work like the attachments.
i am trying to add an import command button to a form so that personnel not familiar with Access can simply push the button and then select the file to import. I want it to import information to a specific table by replacing all records in the current table with the import. I am not the best at coding, but I can understand enough to figure out what I may need to do.
I will be exporting a table to excel from the database. Multiple people will have this database and often times will not be able to access a shared database, so I need to export the table and then set up a way for them to import the excel document into their database by deleting the information in the old one and then updating to the new one.
I am working on a database that will be an addition to an existing one on the company server. However, to make the overall layout not so complex and allow room for other additions in the future, I'd like to keep the databases separate. This will also ensure more efficiency, integrity and troubleshooting overall.
I have the original database with the name of "Cell MFG Screen" that contains a switchboard. I am now creating a db to keep track of manufacturing waste (which will also be on the same server when completed). That switchboard is called "Cell Waste Weight". Again, I want to keep these db's separated from one another as well being able to add future dbs. Now, what my plan is to make up a one db that consists of only a switchboard that will be used as the main switchboard to be able to navigate to other dbs that are located on the server.
What I'd like to do now is add a second function that will make all the controls on the form go to null after the record is saved. so the user can start from scratch and add another record.
I tried adding me.refresh right before "end sub" but that didnt work.
I tried adding "me.controlname.value = null" for every control on the form, and that didnt work either.
I also tried adding this code that i found on bytes.com:
On Error Resume Next
Dim ctl As Control For Each ctl In Me.Controls ctl.Value = Null Next