Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Complementar SELECT * FROM - INNER JOIN con BETWEEN

Estas en el tema de Complementar SELECT * FROM - INNER JOIN con BETWEEN en el foro de Visual Basic clásico en Foros del Web. A ver si alguien puede ayudarme...... a este SELECT: Código: RsFallece.Open "SELECT * FROM Historial INNER JOIN Activos ON Historial.HC_Historial = Activos.HC_Activos WHERE Destino= '" ...
  #1 (permalink)  
Antiguo 17/06/2012, 21:41
 
Fecha de Ingreso: marzo-2011
Ubicación: Florida-Uruguay
Mensajes: 74
Antigüedad: 13 años, 1 mes
Puntos: 4
Complementar SELECT * FROM - INNER JOIN con BETWEEN

A ver si alguien puede ayudarme......
a este SELECT:
Código:
RsFallece.Open "SELECT * FROM Historial INNER JOIN Activos ON Historial.HC_Historial = Activos.HC_Activos WHERE Destino= '" & StrValorFallece & "' ", cnn, adOpenDynamic, adLockBatchOptimistic
necesito agregarle esta condición
Código:
WHERE Hasta BETWEEN #" & Format(Text1, "mm/dd/yyyy") & "# AND #" & Format(Text2, "mm/dd/yyyy") & "#
Intente con and pero no me resulto, a quien pueda ayudar gracias de antemano!!!!!
  #2 (permalink)  
Antiguo 18/06/2012, 08:00
Avatar de lojoam  
Fecha de Ingreso: marzo-2012
Ubicación: Springfield
Mensajes: 32
Antigüedad: 12 años, 1 mes
Puntos: 7
Respuesta: Complementar SELECT * FROM - INNER JOIN con BETWEEN

Hola Jeguiar como va?
Estaba leyendo tu post, no especificaste que motor de BD estas usando pero presumo que es SQL.
La 1er sugerencia que te voy a hacer es que la consulta o propiamente dicho el String que pasas como query, seria mejor que la guardases en una variable String previamente.
Por ej,deberias de hacer un:

Dim QuerySQL as String
QuerySQL = "blablabla"
rs.Open QuerySQL, cn, etc,etc

Y respecto a la sintaxis de tu consulta (y si es que estas usando SQL) prueba con algo asi:
QuerySQL = "SELECT * FROM Historial INNER JOIN Activos ON Historial.HC_Historial = Activos.HC_Activos WHERE (Destino= '" & StrValorFallece & "') AND (Hasta BETWEEN '" & Format(Text1, "mm/dd/yyyy") & "' AND '" & Format(Text2, "mm/dd/yyyy") & "')"

Y decime como te resulta, suerte!
  #3 (permalink)  
Antiguo 19/06/2012, 00:17
 
Fecha de Ingreso: marzo-2011
Ubicación: Florida-Uruguay
Mensajes: 74
Antigüedad: 13 años, 1 mes
Puntos: 4
Respuesta: Complementar SELECT * FROM - INNER JOIN con BETWEEN

lojoam:
Gracias por tu respuesta pero no me fue útil ya que mi BD es Access, no se usar SQL y en verdad los datos que movilizo no son de gran peso. Yo intente con esta forma de escribir la sentencia:

RsFallece.Open "SELECT * FROM Historial INNER JOIN Activos ON Historial.HC_Historial = Activos.HC_Activos WHERE (Destino= '" & StrValorFallece & "') AND (Hasta BETWEEN '" & Format(Text1, "mm/dd/yyyy") & "' AND '" & Format(Text2, "mm/dd/yyyy") & "')"

Pero no me resulto, ya había intentado lo mismo pero sin parentesis en '" & StrValorFallece & "') AND (Hasta, y sin parentesis al final, esto lo intente antes de hacer un nuevo tema en el foro. Todo el codigo de la sentencia es este:
Private Sub Cargar_Listado_Click()

Me.ListView1.ListItems.Clear
Dim RsFallece As ADODB.Recordset
Set RsFallece = New ADODB.Recordset
Dim li As ListItem
Dim StrValorFallece As String
StrValorFallece = "Fallece"

RsFallece.Open "SELECT * FROM Historial INNER JOIN Activos ON Historial.HC_Historial = Activos.HC_Activos WHERE Destino= '" & StrValorFallece & "' ", cnn, adOpenDynamic, adLockBatchOptimistic
While (RsFallece.EOF = False)

Set li = ListView1.ListItems.Add(, , RsFallece("Id_Historial"))
li.ListSubItems.Add , , RsFallece("HC_Historial")
li.ListSubItems.Add , , RsFallece("Documento_Historial")
li.ListSubItems.Add , , RsFallece("Nombre1")
li.ListSubItems.Add , , RsFallece("Nombre2")
li.ListSubItems.Add , , RsFallece("Apellido1")
li.ListSubItems.Add , , RsFallece("Apellido2")
li.ListSubItems.Add , , RsFallece("Hasta")
li.ListSubItems.Add , , RsFallece("Procedencia")
li.ListSubItems.Add , , RsFallece("MedicoEgreso")
li.ListSubItems.Add , , RsFallece("Diagnostico")
li.ListSubItems.Add , , RsFallece("APACHEII")

RsFallece.MoveNext
Wend

For i = 1 To ListView1.ListItems.Count
Total = ListView1.ListItems.Count
Next
TextTotal = Total
End Sub

Si se te ocurre algo avisame y sino te agradezco mucho tu preocupación, nuevamente mil gracias!!!

José
  #4 (permalink)  
Antiguo 19/06/2012, 06:54
Avatar de lojoam  
Fecha de Ingreso: marzo-2012
Ubicación: Springfield
Mensajes: 32
Antigüedad: 12 años, 1 mes
Puntos: 7
Respuesta: Complementar SELECT * FROM - INNER JOIN con BETWEEN

Buenas Jeaguiar, 2 cosas breves..
La 1era, no probaste de poner la query en un String previo a hacer el .Open
2da y que no te lo pregunte aun y a lo mejor clarifica un poco el panorama, que error te da esto? el problema es la sintaxis o es otra cosa?? en que linea cae?


PD: Uruguay nomá!
  #5 (permalink)  
Antiguo 21/06/2012, 00:34
 
Fecha de Ingreso: marzo-2011
Ubicación: Florida-Uruguay
Mensajes: 74
Antigüedad: 13 años, 1 mes
Puntos: 4
Respuesta: Complementar SELECT * FROM - INNER JOIN con BETWEEN

Hola lojoam!!
Primero que nada gracias por tu preocupación. Segundo si genere un String el error era que no cargaba lo que yo necesitaba sino que traia al listview todos los datos que coincidian a la primer condicion. Lo pude corregir y me quedo (funcionando OK) así:

RsFallece.Open "SELECT * FROM Historial INNER JOIN Activos ON Historial.HC_Historial = Activos.HC_Activos WHERE Destino= '" & StrValorFallece & "' AND Hasta BETWEEN #" & Format(Text1, "mm/dd/yyyy") & "# AND #" & Format(Text2, "mm/dd/yyyy") & "#", cnn, adOpenDynamic, adLockBatchOptimistic

Sacando el parentesis previo a Hasta BETWEEN y el posterior y dejando el numerador antes y despues de Format del Textbox 1 y 2.

Muchas gracias por tu ayuda!!!
PD: De donde eres tu? y me alegra que te guste Uruguay! Un abrazo enorme!!

Etiquetas: innerjoin, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 02:22.