Hmm... you are not correctly using Find and FindNext method to find all matches in the database sheet.
Embedding SamT's code in your original code, you'll get the code like below. Try it.
Private Sub part2_Click()
Dim rngToSearch As Range
Dim rngToFind As Range
Dim valToFind As Variant
Dim FirstFoundAddress As String
ListBox2.Clear
valToFind = partsearch2.Value 'ComboBox name
With Worksheets("database")
Set rngToSearch = .Columns("A")
End With
Set rngToFind = rngToSearch.Find(What:=valToFind, _
LookIn:=xlFormulas, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not rngToFind Is Nothing Then
FirstFoundAddress = rngToFind.Address
Do
DoEvents
ListBox2.AddItem
With ListBox2
.List(.ListCount - 1, 0) = rngToFind.Value 'part number
.List(.ListCount - 1, 1) = rngToFind.Offset(0, 1).Value 'desc
.List(.ListCount - 1, 2) = rngToFind.Offset(0, 2).Value 'stor loc
.List(.ListCount - 1, 3) = rngToFind.Offset(0, 3).Value 'bin loc
.List(.ListCount - 1, 4) = rngToFind.Offset(0, 4).Value 'qty
.List(.ListCount - 1, 5) = rngToFind.Offset(0, 5).Value 'mfg
.List(.ListCount - 1, 6) = rngToFind.Offset(0, 6).Value 'pm name
End With
Set rngToFind = rngToSearch.FindNext(rngToFind)
Loop While Not rngToFind Is Nothing And rngToFind.Address <> FirstFoundAddress
Else
MsgBox valToFind & " Not found in Database."
End If
End Sub