Visual Basic - falta operador en la expresion de consulta

Life is soft - evento anual de software empresarial
   
Vista:

falta operador en la expresion de consulta

Publicado por julen (3 intervenciones) el 13/07/2009 09:07:41
Buenas compañeros estoy haciendo un buscador pero la sql me da error y no se donde despues de mirar en distintos sitios sobre este problema no consigo darle solución por eso acudo aquí a ver si entre todos podemos llegar a la soluciónm de antemano gracias.

consulta = "SELECT Candidatos.Nombre, titulacion.nombre FROM candidatos,titulacion INNER JOIN Candidatos ON titulacion.codigotitulo = Candidatos.titulo WHERE" & temp

donde temp es una variable donde dependiendo de los parametros que requiera el usuario se alarga o no.(ahora os lo aclaro mejor)

If Not IsNull([others]) Then
If Len(temp) > 1 Then temp = temp & " And "
temp = temp & " (((titulacion.nombre) Like " & others & "));"
End If

others sería el textbox donde el usuario a escrito por lo que en éste caso la sql me aparece esto:

consulta = "SELECT Candidatos.Nombre, titulacion.nombre FROM candidatos,titulacion INNER JOIN Candidatos ON titulacion.codigotitulo = Candidatos.titulo WHERE (((titulacion.nombre) Like *ciclo*));

le pongo los * ahora manualmente después la intención es que los ponga solos asi busca todos los módulos que sean ciclos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:falta operador en la expresion de consulta

Publicado por JaImE GuErReRo (361 intervenciones) el 13/07/2009 21:30:57
para iniciar like en sql es asi like '%texto%'

cambia tu codigo po

If Not IsNull([others]) Then
If Len(temp) > 1 Then temp = temp & " And "
temp = temp & " (((titulacion.nombre) Like '%" & others & "%'));"
End If

consulta = "SELECT Candidatos.Nombre, titulacion.nombre FROM candidatos,titulacion INNER JOIN Candidatos ON titulacion.codigotitulo = Candidatos.titulo "

if trim(temp)<>empty then
consulta = consulta & " WHERE" & temp
end if
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:falta operador en la expresion de consulta

Publicado por julen (3 intervenciones) el 14/07/2009 09:46:39
gracias jaime por la respuesta el ultimo trozo me lo e saltado porque tenia otro metodo de hacerlo . Con un if si hay algo genero la consulta con el where y sino saco todos los datos.

Gracias a tu respuesta parece que funciona pero digo parece porque no consigo ver el resultado.Lo tengo puesto de esta manera se te ocurre alguna forma mejor?

If (.BOF And .EOF) Then
MsgBox "No se han encontrado los datos buscados"
Else
respuesta.Form.RecordSource = consulta
respuesta.Requery
End If

donde respuesta es un subinforme no se me ocurrio otra forma de hacerlo pero ahora con esto de los comodines y asi nose porque no me plasma los datos en pantalla
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:falta operador en la expresion de consulta

Publicado por JaImE GuErReRo (361 intervenciones) el 14/07/2009 19:36:41
dijate si tienes marcada la opcion de vincular reporte con subreporte, si es asi desmarcalo. esto lo vez dando clic derecho al subinforme
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:falta operador en la expresion de consulta

Publicado por julen (3 intervenciones) el 15/07/2009 09:57:37
me dice que no se puede crear un vinculo entre formularios independientes.Aun y todo nose si la sql estara bien porque ahora me dice que no hay datos y yo se que los hay es algo raro.

La cosa es que tengo distintos ciclos superior,medio ....etc yo quiero que cuando meta en el textbox ciclo que me genere la sql con where modulo like ciclo* si pongo así en access me va pero luego por codigo no me funciona.

si te interesa podria mandarte la base de datos para revisarla yo creo que tiene que ser un fallo en la base de datos y no por el codigo porque si no es este error me solia dar uno de no coinciden los tipos pero no consigo ver donde esta el error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como hacer para que me agregue decimales

Publicado por Hola (1 intervención) el 31/08/2010 18:17:31
Hola tengo un problema con mi codigo. Necesito que me agregue decimales y solo agrega enteros aunque tengo a las variables declaradas como doubles este es mi codigo
Private Sub btnGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGuardar.Click

Dim Honorarios As Double
Dim Importe As Double
Dim IVA As Double
Dim Subtotal As Double
Dim Tasa_IVA As Double
Dim Retencion_IVA As Double
Dim Retencion_ISR As Double
Dim Total As Double

Try

Dim x As String
x = cmbPago.Text

Select Case x
Case "Honorarios"

Importe = txt2.Text
Tasa_IVA = txt1.Text


If (Tasa_IVA = 16) Then
Tasa_IVA = 0.16
Else
Tasa_IVA = 0
End If
Honorarios = Importe / 1.16
IVA = Importe * Tasa_IVA
Subtotal = Importe + IVA
Retencion_IVA = Honorarios * 0.16
Retencion_ISR = Honorarios * 0.1
Total = (Importe - Retencion_IVA) - Retencion_ISR
Case "Persona Física"
Importe = txt2.Text
Tasa_IVA = txt1.Text
IVA = Importe * Tasa_IVA
Subtotal = Importe + IVA
Total = Importe + IVA
End Select

Dim peticion As String = "insert into Declarativa (Fecha,Num_documento,Investigador,Fiscal,Fideicomiso,Partida,Nombre_proveedor,RFC,Tasa_IVA,Importe,Honorarios,IVA,Subtotal,Retencion_IVA,Retencion_ISR,Total,Tipo_pago,Contabilidad,Poliza,Campo) "
Dim valores As String = " values ('" + txtFecha.Text + "','" + txtNum.Text + "','" + cmbInves.Text + "','" + cmbFiscal.Text + "','" + cmbFide.Text + "'," + cmbPartida.Text + ",'" + cmbNombre.Text + "','" + cmbRFC.Text + "'," + txt1.Text + "," + txt2.Text + "," + Honorarios.ToString + "," + IVA.ToString + "," + Subtotal.ToString + "," + Retencion_IVA.ToString + "," + Retencion_ISR.ToString + "," + Total.ToString + ",'" + x + "','" + cmbConta.Text + "','" + txtPoliza.Text + "','" + cmbCampo.Text + "')"
comando = New OleDb.OleDbCommand((peticion & valores), conexion)
conexion.Open()
comando.ExecuteNonQuery()
conexion.Close()
Refrescar()

Catch ex As Exception
MsgBox(ex.Message)
End Try

End Sub

Espero y puedan ayudarme.........gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar