Primer error: cuando pones:
Dim preciounit, preciorecibido As Currency
Estás declarando la variable preciounit como Variant y preciorecibido como Currency. Si quieres usar un solo Dim para declarar varias variables, tienes que indicar expresamente de qué tipo van a ser: Dim preciounit As Currency, preciorecibido As Currency
Lo mismo con todas las otras declaraciones.
Segundo error: en SQL y en VBA, los datos de tipo texto van entre comillas simples ('), lso de fecha entre almohadillas (#) y los números van directamente. Además, en el caso concreto del lenguaje SQL, a las fechas es aconsejable darles formato americano (mm/dd/aaaa), que es el que entiende bien.
Para evitar el uso de tantos &, lo único que debes hacer es escribir seguido todo aquello que no es una variable:
consultaBD= " update DetallePedidos set Descripcion = '" & descripcion & "', PrecioUnit = " & _
Str(preciounit) & ", NomCategoria = '" & nomcategoria & "', NumReq = '" & numreq & "', Giro = '" & _
giro & "', "CantidadTaller = " & cantidadtaller & ", Memorandum = '" & memorandum & "', [DictTéc] = '" & _
dicttec & "', FechaRecep = #" & Format(fecharecep,"mm/dd/yyyy") & ", NConcurso = '" & nconcurso & "', FechaFallo = #" & _
Format(fallo,"mm/dd/yyyy") & "#, NotaGral = '" & notagral & "', ProveedAdjud = '" & _
proveedoradjud & "', FechaEntrega = #" & Format(fechaentrega,"mm/dd/yyyy") & "#, LugarEntrega = '" & _
lugarentrega & "', ComentProveed= '" & comentproveed & "', CantUnit = " & cantidadunit & ", CantRecibida = " & _
cantrecibida & ", FechaEntrada = #" & Format(fechaentrada,"mm/dd/yyyy") & "#, ComentEntradas = '" & _
comententradas & "', Numsalida = '" & numsalida & "', FechaSalida = #" & _
Format(fechasalida,"mm/dd/yyyy") & "#, ComentSalida = '" & comentasalidas & "', PrecioRecibido = " & _
Str(preciorecibido) & " where IdDetalle= " & iddetalle
Si no lo haces así, has de fijarte que cada vez que abres una comilla doble, mientras no la cierres, todo lo que vaya en medio lo va a interpretar como una cadena de texto.
Por ejemplo aquí ya te dará un error:
update DetallePedidos set Descripcion = " & "'" & descripcion & "'", PrecioUnit = " &
Porque la coma y todo lo que sigue, está fuera de las comillas y no está encadenado por &. Y así tienes varios casos más