Tienes mal escrita la consulta.
Si copio literalmente lo que pones sería:
Código MySQL:
Ver original tabla_general
general_maid= '" & valormarcaid & "AND
general_moid= " & valormodeloid & "'
Por lo que si remplazo valormarcaid y valormodeloid por "1! y "2", por ejemplo, la consulta quedaría:
Código MySQL:
Ver original tabla_general
general_maid= '1AND general_moid= 2'
Como puedes ver, en realidad estás comparando general_maid con la cadena "1AND general_moid= 2", lo que puede estar dandote cuálquier resultado, e incluso ninguno.
Consejos:
- Si son valores numéricos, no los pongas entre apóstrofes ('), no lo necesitan y reducen la performance.
- Si son valores de cadena, sí necesitan apóstrofes.
- Respeta los espacios entre los valores y las cláusulas, o generarás errores de sintáxis o de lógica, sin darte cuenta.
- Trata de usar sentencias parametrizadas. Tienden a generar menos errores y permiten escribir las sentencias SQL con más claridad.
- Usa alias para los campos cuando utilizas funciones. Evitarás nombres de columna que te pueden causar problemas.
La cosa podría ser mas o menos:
Código vb:
Ver originalformPrincipal.conexda = New MySqlDataAdapter("SELECT AVG(general_precio) media_precio FROM tabla_general WHERE general_maid = " & valormarcaid & " AND general_moid= " & valormodeloid, formPrincipal.conexionbd)
formPrincipal.conexdt = New DataTable()
formPrincipal.conexda.Fill(formPrincipal.conexdt)
MsgBox(formPrincipal.conexdt.Rows(0)("media_precio"))
If (IsDBNull(formPrincipal.conexdt.Rows(0)("media_precio"))) Then
lbmedia.Text = "No hay vehículos insertados."
Else
varMedia = formPrincipal.conexdt.Rows(0)("media_precio")
lbmedia.Text = "El precio medio del modelo " & cbmodelof.Text & " de " & cbmarcaf.Text & " es de " & varMedia & " €."
End If
Prueba y veamos.