I posted about this yesterday and have since made changes and attempted a few things to try and fix it and am still having trouble.
I'm working on a database for work and am getting a compile error when trying to add a record to a form.
It's essentially an inventory system, I have a table with the inventory of our warehouse and I'm trying to create a form that has a text box for every piece of information on a piece of equipment. So you go to the form, fill out each text box with the information and then there are 5 boxes to the side of the text boxes that you click to do different things. Below this there is a subform of the main inventory table.
There is an Add, Edit, Delete, Clear, and Close button. The Add button adds a record to this subform and consequently the main table with whatever information you type into the text boxes. To use the Edit box you click on a record in the subform and then click the Edit button and it will fill the text boxes with the information from the selected record, so that you can edit the information. At the same time, once you click Edit, it changes the label on the Add button to Update, so that once you have edited the data, you click Update and it will update the data in the subform and the main table. The other 3 buttons do what they're supposed to, you click a record and click delete to delete a record, click close to exit the form and click clear to clear any information that is filled in the text boxes.
The problem I'm having is that the Add/Update button isn't working - when I click it I get this error: Compile error: Method or data member not found. Every other button works perfectly fine and I have written and re written this code over twice now and can't figure out what's going on.
The weirdest part is that I basically copied this code over from another database that I coded that works exactly as intended and is super similar to this one. The only thing I even had to change when switching to this database was the names of the labels and table headers.
Can anyone help me out here?
Code:
Option Compare Database
Private Sub cmdAdd_Click()
'when we click on Add button there are two options
'1. for inserting new data
'2. for updating selected data
If Me.txtICN.Tag & "" = "" Then
'add data to table after clicking the add button
CurrentDb.Execute "INSERT INTO tblInventory(ICN, manu, modelNum, serialNum, descr, dateRec, projectNum, dispo, flgDispo, dateRemoved, comments, ulNum, amcaNum)" & _
"VALUES (" & Me.txtICN & ", '" & Me.txtManu & "', '" & Me.txtModel & "', '" & Me.txtSerial & "', '" & Me.txtDesc & "', '" & Me.txtDateRec & "', '" & Me.txtProjectNum & "','" & _
Me.txtDispo & "', '" & Me.chkDispo & "', '" & Me.txtDateRemoved & "', '" & Me.txtComments & "', '" & Me.txtULNum & "', '" & Me.txtAMCANum & "')"
Else
'otherwise
CurrentDb.Execute "UPDATE tblInventory " & _
" SET ICN =" & Me.txtICN & _
", manu ='" & Me.txtManu & "'" & _
", modelNum ='" & Me.txtModel & "'" & _
", serialNum ='" & Me.txtSerial & "'" & _
", descr ='" & Me.txtDescr & "'" & _
", dateRec ='" & Me.txtDateRec & "'" & _
", projectNum ='" & Me.txtProjectNum & "'" & _
", dispo ='" & Me.txtDispo & "'" & _
", flgDispo ='" & Me.chkDispo & "'" & _
", dateRemoved ='" & Me.txtDateRemoved & "'" & _
", comments ='" & Me.txtComments & "'" & _
", ulNum ='" & Me.txtULNum & "'" & _
", amcaNum ='" & Me.txtAMCANum & "'" & _
" WHERE ICN =" & Me.txtICN.Tag
End If
'clear form after data has been added to the table
cmdClear_Click
'refresh data in list on form after form has been cleared
frmInventorySub.Form.Requery
End Sub
Private Sub cmdClear_Click()
Me.txtICN = ""
Me.txtManu = ""
Me.txtModel = ""
Me.txtSerial = ""
Me.txtDesc = ""
Me.txtDateRec = ""
Me.txtProjectNum = ""
Me.txtDispo = ""
Me.chkDispo = ""
Me.txtDateRemoved = ""
Me.txtComments = ""
Me.txtULNum = ""
Me.txtAMCANum = ""
'set focus to ICN number
Me.txtICN.SetFocus
'set edit button to enabled after data has been cleared from form
Me.cmdEdit.Enabled = True
'change caption of button add to Add from Edit
Me.cmdAdd.Caption = "Add"
'clear tag on txtICN
Me.txtICN.Tag = ""
End Sub
Private Sub cmdClose_Click()
DoCmd.Close
End Sub
Private Sub cmdDelete_Click()
'delete record
'check existingselected record
If Not (Me.frmInventorySub.Form.Recordset.EOF And Me.frmInventorySub.Form.Recordset.BOF) Then
'confirm delete
If MsgBox("Are you sure you want to delete this record?)", vbYesNo) = vbYes Then
'delete now
CurrentDb.Execute "DELETE FROM tblInventory " & _
"WHERE ICN=" & Me.frmInventorySub.Form.Recordset.Fields("ICN")
'refresh data in list
Me.frmInventorySub.Form.Requery
End If
End If
End Sub
Private Sub cmdEdit_Click()
'check to see if data is already in the form
If Not (Me.frmInventorySub.Form.Recordset.EOF And Me.frmInventorySub.Form.Recordset.BOF) Then
'pull data from selected record into the text boxes
With Me.frmInventorySub.Form.Recordset
Me.txtICN = .Fields("ICN")
Me.txtManu = .Fields("manu")
Me.txtModel = .Fields("modelNum")
Me.txtSerial = .Fields("serialNum")
Me.txtDesc = .Fields("descr")
Me.txtDateRec = .Fields("dateRec")
Me.txtProjectNum = .Fields("projectNum")
Me.txtDispo = .Fields("dispo")
Me.chkDispo = .Fields("flgDispo")
Me.txtDateRemoved = .Fields("dateRemoved")
Me.txtComments = .Fields("comments")
Me.txtULNum = .Fields("ulNum")
Me.txtAMCANum = .Fields("amcaNum")
'store ICN in tag of txtICN in case ICN is modified
Me.txtICN.Tag = .Fields("ICN")
'change caption of add button to Update
Me.cmdAdd.Caption = "Update"
'disable edit button
Me.cmdEdit.Enabled = False
End With
End If
End Sub
Okay, I see it now. Your using the TAG property as an indicator if the record was edited or not. i.e. If it's a new record, then TAG = "", and if it's an existing record you replicate the ICN into the TAG.
If that's the case then change that IF statement to this:
If Me.txtICN.Tag = "" Then
Related
I get a run time 13 error = "mismatch error" in my login form in the Access Database.
Currently the form works for members and successfully logs them in however when I try to enter correct login details from the trainer table I get the run time error.
Option Compare Database
Private Sub Command1_Click()
If IsNull(Me.txtEmail) Then
MsgBox "Please Enter Email Address", vbInformation, "Email Requeired"
Me.txtEmail.SetFocus
ElseIf IsNull(Me.txtPassword) Then
MsgBox "Please Enter Email Address", vbInformation, "Email Requeired"
Me.txtPassword.SetFocus
Else
'process the job'
If (IsNull(DLookup("MemberEmail", "TBL_Members", "MemberEmail = '" & Me.txtEmail.Value & "' And MemberPassword = '" & Me.txtPassword.Value & "'")) Or (DLookup("TrainerEmail", "TBL_Trainers", "TrainerEmail = '" & Me.txtEmail.Value & "' And TrainerPassword = '" & Me.txtPassword.Value & "'"))) Then
MsgBox "Invalid Username or Password!"
Else
MemberEmail = DLookup("[MemberEmail]", "TBL_Members", "[MemberEmail] = '" & Me.txtEmail.Value & "'")
TrainerEmail = DLookup("[TrainerEmail]", "TBL_Trainers", "[TrainerEmail] = '" & Me.txtEmail.Value & "'")
SecurityLevel = DLookup("[SecurityLevel]", "TBL_Members", "[MemberEmail] = '" & Me.txtEmail.Value & "'")
DoCmd.Close
If (TempPass = "password") Then
MsgBox "Please change Password", vbInformation, "New password required"
DoCmd.OpenForm "frmUserinfo", , , "[UserLogin] = " & UserLogin
Else
'open different form according to user level
If SecurityLevel = 1 Then ' for Members
DoCmd.OpenForm "Admin"
Else
DoCmd.OpenForm "Navigation Form"
End If
End If
End If
End If
End Sub
Private Sub Form_Load()
Me.txtEmail.SetFocus
End Sub
Your problem is in this expression:
If (IsNull(DLookup("MemberEmail", "TBL_Members", "MemberEmail = '" & _
Me.txtEmail.Value & "' And MemberPassword = '" & Me.txtPassword.Value & "'")) _
Or (DLookup("TrainerEmail", "TBL_Trainers", "TrainerEmail = '" & _
Me.txtEmail.Value & "' And TrainerPassword = '" & Me.txtPassword.Value & "'"))) _
Then
Let's add some variables to make it easier to read:
Dim varM As Variant
Dim varT As Variant
varM = DLookup("MemberEmail", "TBL_Members", "MemberEmail = '" & _
Me.txtEmail.Value & "' And MemberPassword = '" & Me.txtPassword.Value & "'"))
varT = DLookup("TrainerEmail", "TBL_Trainers", "TrainerEmail = '" & _
Me.txtEmail.Value & "' And TrainerPassword = '" & Me.txtPassword.Value & "'"))
If (IsNull(varM Or varT)) Then
The problem is that Or requires Boolean or numeric operands, but you're applying it to e-mail addresses and then checking whether the result is null. What you really want to do is check whether each is null and then use the results of those expressions as the operands for Or:
If (IsNull(varM) Or IsNull(varT)) Then
Furthermore, as pointed out in a comment, the operator should be And, not Or, since you would never expect both of the values to be non-null:
If (IsNull(varM) And IsNull(varT)) Then
I'll leave it to you to figure out how to fix that in the original expression without the variables.
I have 4 tables: Code_Product, Name_Product, Color_Product, Size_Product
And code:
Public Sub ExecuteQuery(query As String)
Dim command As New SqlCommand(query, connection)
command.ExecuteNonQuery()
End Sub
Private Sub btnUpdate_Click(sender As Object, e As EventArgs) Handles btnUpdate.Click
Dim updateQuery As String = "UPDATE tbl_Product SET Name_Product = '" & txtNameProduct.Text & "' , Color_Product = '" & txtColorProduct.Text & "', Size_Product = '" & txtSizeProduct.Text & "' where Kode_Produk= '" & txtKodeProduk.Text & "'"
ExecuteQuery(updateQuery)
MessageBox.Show("Data has been changed")
Notes: the code work.
But, the code changes all columns, and I just want to change only one column. How?
replace this line
Dim updateQuery As String = "UPDATE tbl_Product SET Name_Product = '" & txtNameProduct.Text & "' , Color_Product = '" & txtColorProduct.Text & "', Size_Product = '" & txtSizeProduct.Text & "' where Kode_Produk= '" & txtKodeProduk.Text & "'"
with this. Pass only that column which you want to update.
Dim updateQuery As String = "UPDATE tbl_Product SET Name_Product = '" & txtNameProduct.Text & "' where Kode_Produk= '" & txtKodeProduk.Text & "'"
I need help figuring out why I'm getting this syntax error when trying to run this code in Microsoft Access. I am working on this database for work and have some experience with it, but not a whole lot.
I created a database before the one I'm currently working on and it works fine. It is very similar to the database that I'm working on now, so I just copied it and then renamed the fields and text boxes and everything to match the information that this database will be handling.
Essentially I have a table with the data and then I want a form that has a text box for each field in the table with a subtable of the main table incorporated into the form. The user fills in the text boxes with the information and then either adds it to the table or they can click on a record and edit it or delete it with the corresponding buttons on the form.
Now I'm getting a runtime error '3134': syntax error in INSERT INTO statement when trying to click the add button on one of my forms. This only happens on the add button and consequently the update button if it is set to update, but all of the other buttons work fine.
Here is the code for the new database:
Option Compare Database
Private Sub cmdAdd_Click()
'when we click on button Add there are two options
'1. for insert
'2. for update
If Me.txtICN.Tag & "" = "" Then
'this is for insert new
'add data to table
CurrentDb.Execute "INSERT INTO tblInventory(ICN, manu, model, serial, desc, dateRec, dateRem, dispo, project, AMCA, UL, comments) " & _
" VALUES(" & Me.txtICN & ", '" & Me.txtManu & "', '" & Me.txtModel & "', '" & Me.txtSerial & "', '" & Me.txtDesc & "', '" & Me.txtDateRec & "', '" & Me.txtDateRem & "', '" & Me.txtDispo & "', '" & Me.txtProject & "', '" & Me.txtAMCA & "', '" & Me.txtUL & "', '" & Me.txtComments & "')"
Else
'otherwise (Tag of txtICN store the ICN of item to be modified)
CurrentDb.Execute "UPDATE tblInventory " & _
" SET ICN = " & Me.txtICN & _
", manu = '" & Me.txtManu & "'" & _
", model = '" & Me.txtModel & "'" & _
", serial = '" & Me.txtSerial & "'" & _
", desc = '" & Me.txtDesc & "'" & _
", dateRec = '" & Me.txtDateRec & "'" & _
", dateRem = '" & Me.txtDateRem & "'" & _
", dispo = '" & Me.txtDispo & "'" & _
", project = '" & Me.txtProject & "'" & _
", AMCA = '" & Me.txtAMCA & "'" & _
", UL = '" & Me.txtUL & "'" & _
", comments = '" & Me.txtComments & "'" & _
" WHERE ICN = " & Me.txtICN.Tag
End If
'clear form
cmdClear_Click
'refresh data in list on form
frmInventorySub.Form.Requery
End Sub
Private Sub cmdClear_Click()
Me.txtICN = ""
Me.txtManu = ""
Me.txtModel = ""
Me.txtSerial = ""
Me.txtDesc = ""
Me.txtDateRec = ""
Me.txtDateRem = ""
Me.txtDispo = ""
Me.txtProject = ""
Me.txtAMCA = ""
Me.txtUL = ""
Me.txtComments = ""
'focus on ID text box
Me.txtICN.SetFocus
'set button edit to enable
Me.cmdEdit.Enabled = True
'change caption of button add to Add
Me.cmdAdd.Caption = "Add"
'clear tag on txtICN for reset new
Me.txtICN.Tag = ""
End Sub
Private Sub cmdClose_Click()
DoCmd.Close
End Sub
Private Sub cmdDelete_Click()
'delete record
'check existing selected record
If Not (Me.frmInventorySub.Form.Recordset.EOF And Me.frmInventorySub.Form.Recordset.BOF) Then
'confirm delete
If MsgBox("Are you sure you want to delete this item?", vbYesNo) = vbYes Then
'delete now
CurrentDb.Execute "DELETE FROM tblInventory " & _
"WHERE ICN =" & Me.frmInventorySub.Form.Recordset.Fields("ICN")
'refresh data in list
Me.frmInventorySub.Form.Requery
End If
End If
End Sub
Private Sub cmdEdit_Click()
'check whether there exists data in list
If Not (Me.frmInventorySub.Form.Recordset.EOF And Me.frmInventorySub.Form.Recordset.BOF) Then
'get data to text box control
With Me.frmInventorySub.Form.Recordset
Me.txtICN = .Fields("ICN")
Me.txtManu = .Fields("manu")
Me.txtModel = .Fields("model")
Me.txtSerial = .Fields("serial")
Me.txtDesc = .Fields("desc")
Me.txtDateRec = .Fields("dateRec")
Me.txtDateRem = .Fields("dateRem")
Me.txtDispo = .Fields("dispo")
Me.txtProject = .Fields("project")
Me.txtAMCA = .Fields("AMCA")
Me.txtUL = .Fields("UL")
Me.txtComments = .Fields("comments")
'store id of item in Tag of txtICN in case ICN is modified
Me.txtICN.Tag = .Fields("ICN")
'change caption of button add to Update
Me.cmdAdd.Caption = "Update"
'disable button edit
Me.cmdEdit.Enabled = False
End With
End If
End Sub
And here is the code for the old database:
Option Compare Database
Private Sub cmdAdd_Click()
'when we click on button Add there are two options
'1. for insert
'2. for update
If Me.txtID.Tag & "" = "" Then
'this is for insert new
'add data to table
CurrentDb.Execute "INSERT INTO tblEquipmentList(equipID, equipDesc, equipManu, equipModelNum, equipSerNum, lastCalDate, calDue) " & _
" VALUES(" & Me.txtID & ", '" & Me.txtDesc & "', '" & Me.txtManu & "', '" & Me.txtModelNum & "', '" & Me.txtSerNum & "', '" & Me.txtLastCalDate & "', '" & Me.txtCalDueDate & "')"
Else
'otherwise (Tag of txtID store the id of equipment to be modified)
CurrentDb.Execute "UPDATE tblEquipmentList " & _
" SET equipID = " & Me.txtID & _
", equipDesc = '" & Me.txtDesc & "'" & _
", equipManu = '" & Me.txtManu & "'" & _
", equipModelNum = '" & Me.txtModelNum & "'" & _
", equipSerNum = '" & Me.txtSerNum & "'" & _
", lastCalDate = '" & Me.txtLastCalDate & "'" & _
", calDue = '" & Me.txtCalDueDate & "'" & _
" WHERE equipID = " & Me.txtID.Tag
End If
'clear form
cmdClear_Click
'refresh data in list on form
frmEquipmentListSub.Form.Requery
End Sub
Private Sub cmdClear_Click()
Me.txtID = ""
Me.txtDesc = ""
Me.txtManu = ""
Me.txtModelNum = ""
Me.txtSerNum = ""
Me.txtLastCalDate = ""
Me.txtCalDueDate = ""
'focus on ID text box
Me.txtID.SetFocus
'set button edit to enable
Me.cmdEdit.Enabled = True
'change caption of button add to Add
Me.cmdAdd.Caption = "Add"
'clear tag on txtID for reset new
Me.txtID.Tag = ""
End Sub
Private Sub cmdClose_Click()
DoCmd.Close
End Sub
Private Sub cmdDelete_Click()
'delete record
'check existing selected record
If Not (Me.frmEquipmentListSub.Form.Recordset.EOF And Me.frmEquipmentListSub.Form.Recordset.BOF) Then
'confirm delete
If MsgBox("Are you sure you want to delete this piece of equipment?", vbYesNo) = vbYes Then
'delete now
CurrentDb.Execute "DELETE FROM tblEquipmentList " & _
"WHERE equipID =" & Me.frmEquipmentListSub.Form.Recordset.Fields("equipID")
'refresh data in list
Me.frmEquipmentListSub.Form.Requery
End If
End If
End Sub
Private Sub cmdEdit_Click()
'check whether there exists data in list
If Not (Me.frmEquipmentListSub.Form.Recordset.EOF And Me.frmEquipmentListSub.Form.Recordset.BOF) Then
'get data to text box control
With Me.frmEquipmentListSub.Form.Recordset
Me.txtID = .Fields("equipID")
Me.txtDesc = .Fields("equipDesc")
Me.txtManu = .Fields("equipManu")
Me.txtModelNum = .Fields("equipModelNum")
Me.txtSerNum = .Fields("equipSerNum")
Me.txtLastCalDate = .Fields("lastCalDate")
Me.txtCalDueDate = .Fields("calDue")
'store id of equipment in Tag of txtID in case id is modified
Me.txtID.Tag = .Fields("equipID")
'change caption of button add to Update
Me.cmdAdd.Caption = "Update"
'disable button edit
Me.cmdEdit.Enabled = False
End With
End If
End Sub
As you can see, I'm pretty confident that they're pretty much identical except for the field names.
I'm also linking an album of screenshots of the database here: http://imgur.com/a/xLV3Q
Thanks for any help you guys can provide.
The problem may be:
Your new table tblInventory has a column DESC which is a SQL reserved keyword. You have two options:
Drop the column DESC and create a new column with different name OR;
Add brackets to your script like this: INSERT INTO tblInventory([ICN], [manu], [model], [serial], [desc], [dateRec], [dateRem], [dispo], [project], [AMCA], [UL], [comments]).
Please check a full list of SQL reserved keywords: Reserved Keywords-Transact-SQL
I want to add data to my App table in Visual Studio. When I run the program, I fill the information into the text boxes, and when I click the add button, I receive this message from this code:
"Cmd.ExecuteNONQuerry" : An unhandled exception of type
'System.Data.SqlClient.SqlException' occurred in System.Data.dll
When I run "Build Solution" I receive this:
========== Build: 0 succeeded, 0 failed, 1 up-to-date, 0 skipped ==========
Can somebody please help me.
Imports System.Data.SqlClient
Public Class APP
Dim Con As New SqlConnection
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles ButtonAdd.Click
Con.Open()
Dim Cmd As New SqlCommand(("INSERT INTO App VALUES('" & _
ID.Text & "','" & _
Dat.Text & "','" & _
Inst.Text & "', '" & _
Credent.Text & "', '" & _
AppOwner.Text & "', '" & _
Status.Text & "', '" & _
SerialNr.Text & "', '" & _
MAC.Text & "', '" & _
DellNr.Text & "', '" & _
Model.Text & "', '" & _
Description.Text & _
"', '" & Service.Text & _
"', '" & Indkøbt.Text & "',)"), Con)
Cmd.ExecuteNonQuery()
Con.Close()
MsgBox("Success....", MsgBoxStyle.Information, "SUCCESS")
ID.Clear()
Dat.Clear()
Inst.Clear()
Credent.Clear()
AppOwner.Clear()
Status.Clear()
SerialNr.Clear()
MAC.Clear()
DellNr.Clear()
Model.Clear()
Description.Clear()
Service.Clear()
Indkøbt.Clear()
ID.Focus()
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Con.ConnectionString = "Data Source=BYG-A101-MOELKA;Initial Catalog=App;Integrated Security=True"
End Sub
At the first glance:
"', '" & Indkøbt.Text & "',)"), Con)
is wrong, it should be
"', '" & Indkøbt.Text & "')"), Con)
But there is another big Problem: you are not using sqlparameters, so your code will crash if someone enters a "'".
When using an insert like you do, it´s also ... more readable if you also specify the field list to see, if you inserting values in the correct databasefield. But much better change to sqlparameters.
Addition - SQL Parameters (with an update Statement, but the principle should be clear):
sqlStmt = "UPDATE table SET fieldname = #fieldparameter WHERE ..."
Using sqlComm As New SqlCommand(sqlStmt, sqlConn)
sqlComm.Parameters.Add(New SqlParameter("#fieldparameter", yourvalue))
sqlComm.ExecuteNonQuery()
End Using
I have created a database in Visual Studio and I am coding with VB.net I have created textboxes and checkboxes to match the fields that each will search when the search button is pressed .
whenever i perform a search using the text boxes and checkbox i get an error.
Item Name , Room , Broken, In Use, floor, are the fields searched by the tehe text in NameSearch, RoomSearch, BrokenSearchare, InUseSearch ,FloorSearchrespectivly ....etc
this is thee code for the search button
Private Sub SearchButton_Click(sender As Object, e As EventArgs) Handles SearchButton.Click
RecordDataGridView.Refresh()
Me.RecordBindingSource.Filter = "[Item Name]= '" & NameSearch.Text & "' And [Room]= '" & RoomSearch.Text & "' And [Make]= '" & MakeSearch.Text & _
"' And [Broken]= '" & BrokenSearch.CheckState & "' And [Replaced]= '" & ReplacedSearch.CheckState & "'And [ID#]= '" & IdentificationNumberSearch.Text & _
"' And [Floor]= '" & FloorSearch.Text & "' And [In Use]= '" & InUseSearch.CheckState & "'"
Me.RecordTableAdapter.Fill(Me.MLGDatabaseDataSet.Record)
RecordDataGridView.Refresh()
End Sub
the error
for example I enter a text into item nameSearch and floorSearch and press search ,no result will be turned up as the other text boxes have no text in them.
Without addressing other issues, such as using a parameterized query to prevent SQL injections or using StringBuilder to more efficiently perform concatenation, I believe your issue may be a missing space in this snippet:
ReplacedSearch.CheckState & "'And [ID#]= '"
if you change this to
ReplacedSearch.CheckState & "' And [ID#]= '"
it may resolve the immediate error. However, you almost certainly have additional logic errors introduced by the OR statement in the middle (you probably want to surround the two clauses that are ORed with parentheses).
I spotted the same thing as #competent_tech. I would set it up this way to make it easier to debug.
Dim strFilter As String = _
"[Item Name]= '" & NameSearch.Text & _
"' And [Room]= '" & RoomSearch.Text & _
"' And [Make]= '" & MakeSearch.Text & _
"' And [Broken]= '" & BrokenSearch.CheckState & _
"' Or [Replaced]= '" & ReplacedSearch.CheckState & _
"' And [ID#]= '" & IdentificationNumberSearch.Text & _
"' And [Floor]= '" & FloorSearch.Text & _
"' And [In Use]= '" & InUseSearch.CheckState & "'"
Debug.Print(strFilter)
RecordBindingSource.Filter = strFilter
Edit: you want to filter only when there are conditions given
'filter string
Dim strFilter As String = ""
'for check boxes you probably want to filter only if checked
If BrokenSearch.CheckState = CheckState.Checked Then strFilter += "And [Broken]= " & BrokenSearch.CheckState & " "
If ReplacedSearch.CheckState = CheckState.Checked Then strFilter += "And [Replaced]= " & ReplacedSearch.CheckState & " "
If InUseSearch.CheckState = CheckState.Checked Then strFilter += "And [In Use]= " & InUseSearch.CheckState & " "
'for text boxes you want to filter only if has text
If IdentificationNumberSearch.Text.Length > 0 Then strFilter += "And [ID#]= '" & IdentificationNumberSearch.Text & "' "
If FloorSearch.Text.Length > 0 Then strFilter += "And [Floor]= " & FloorSearch.Text & " "
If RoomSearch.Text.Length > 0 Then strFilter += "And [Room]= " & RoomSearch.Text & " "
If MakeSearch.Text.Length > 0 Then strFilter += "And [Make]= '" & MakeSearch.Text & "' "
If NameSearch.Text.Length > 0 Then strFilter += "And [Item Name]= '" & NameSearch.Text & "' "
'check to make sure there is at least one condition
If strFilter.Length > 0 Then
'remove the first "And"
strFilter = strFilter.Remove(0, 4)
'output
Debug.Print(strFilter)
'set to filter
RecordBindingSource.Filter = strFilter
End If
Edit: Your error "Cannot perform '=' operation on System.Boolean and System.String" I think the problem is that the filter value has to match the field type.
For strings do this: [Make] = 'stringValue' using single quotes;
For integers do this: [Floor] = 24 without single quotes;
For bit do this: [Broken] = 1 without single quotes;
It looks like Broken, Replaced and In Use are Bit type in the database. And I'm guessing that Floor and Room are Integer.