Use a QueryDef for a parameter query.
Dim qdf As DAO.QueryDef
qrystr = "PARAMETERS which_name TEXT(255);" & vbCrLf & _
"SELECT DrugCompanyID FROM [Drug Company] WHERE [Name] = [which_name];"
Set qdf = db.CreateQueryDef(vbNullString, qrystr)
qdf.Parameters("which_name") = cond
Set rs = qdf.OpenRecordset
You needn't include quotes around the parameter in the SELECT statement, nor be concerned by any quotes contained within the text you supply for the parameter value. The db engine expects to receive text and will treat it as such.
I also used square brackets around [Name]
because it's a reserved word. That doesn't seem to have been a problem in this case; I bracket such names routinely as a precaution.