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

visual basic y sql

Estas en el tema de visual basic y sql en el foro de Visual Basic clásico en Foros del Web. Buenos Dias, tengo una duda que me gustaria pudiesen solventarla, soy nueva en el foro y por ende no los conozco, pero espero poder ayudar ...
  #1 (permalink)  
Antiguo 11/04/2012, 07:39
 
Fecha de Ingreso: abril-2012
Ubicación: Caracas
Mensajes: 22
Antigüedad: 12 años
Puntos: 1
Pregunta visual basic y sql

Buenos Dias, tengo una duda que me gustaria pudiesen solventarla, soy nueva en el foro y por ende no los conozco, pero espero poder ayudar de aqui en adelante si esta en mis condiciones a cualquiera en algun momento..

Mi problema es el siguiente: actualmente estoy trabajando con vb 6.0 y sql hasta los momentos tengo este codigo el cual funiciona muy bien y pueda ser hasta una ayuda para cualquiera que necesite emplear en posibilidades lo mismo:

'''''Mostrar campos base de datos por medio de un data grid pulsando el comandbutton

Private Sub Command1_ok_prin_Click()
grid_datos.Clear
Dim rs As New ADODB.Recordset
Dim sql As String
g_db.Open "driver={SQL Server};server=SERVIDOR2;uid=profit;pwd=profit;dat abase=Prueba1"

sql = "select * from Table_1 order by fecha "
rs.Open sql, g_db, adOpenKeyset
g_db.Execute sql
If Len(sqlfilter) > 0 Then sqlfilter = " where " & sqlfilter & " Order by ID "
'' '-- ejecuta la consulta
sql = sql & sqlfilter

If rs.RecordCount > 0 Then
'-- defino el encabezado del grid
grid_datos.FormatString = " " & vbTab & " ID " & vbTab & " fecha "
grid_datos.Rows = 1

Do While Not rs.EOF

grid_datos.AddItem " " & vbTab & rs!ID & vbTab & rs!FECHA ''& vbTab & rs!CEDULA & vbTab & rs!TELEFONO & vbTab & rs!UBICACION & vbTab & rs!EDAD & vbTab & rs!FECHA
' " & vbTab & rs!ID & vbTab & rs!nombre & vbTab & rs!CEDULA & vbTab & rs!TELEFONO & vbTab & rs!UBICACION & vbTab & rs!EDAD
rs.MoveNext

Loop
End If
rs.Close
g_db.Close


End Sub


''''''reloj motor
Private Sub Timer1_Timer()

Dim A As Integer
Dim B As Integer

Dim Rst As New Recordset
Dim sql As String


lbl_Hora.Caption = Format(Time, "hh:mm:ss AMPM")

FECHA_DIA = Format(Date, "DDmmmyy")
Text1.Text = UCase(FECHA_DIA)


Lbl_horario.Caption = Mid(lbl_Hora.Caption, 10, 12)


If Lbl_horario.Caption = "p.m." Then
A = "1"
End If

If Lbl_horario.Caption = "a.m." Then
B = "1"
End If



If Mid(lbl_Hora.Caption, 1, 8) = "11:00:00" And B = "1" Then

'''anexar servidor y nombre base de datos
g_db.Open "driver={SQL Server};server=SERVIDOR2;uid=profit;pwd=profit;dat abase=Prueba1"
'''anexar nombre campo, nombre tabla

sql = "SELECT * From Table_1 WHERE DATEPART (year, fecha <> '')= @fecha "

End If
End Sub

por una parte tengo un reloj el cual se activa justo a la hora y fecha actuales y por otra parte poseo por medio de un comandbutton el cual me llama la base de datos que necesito mostrar y los refleja en un data grid.

El problema se esncuentra en que necesito que los datos que se me reflejen en el data grid sean justamante los que aparezcan en el textbox puesto que alli se refleja la fecha del sistema. puesto de manera mas simple quiero que me traiga la fecha que aparece en el sistema automaticamente. No se si deba ser una sentencia sql la cual pueda usar y colocar que llame por el textbox o deba utilizar un ciclo if que me sugieren que sea menos codigo??
  #2 (permalink)  
Antiguo 11/04/2012, 08:15
Avatar de lojoam  
Fecha de Ingreso: marzo-2012
Ubicación: Springfield
Mensajes: 32
Antigüedad: 12 años, 2 meses
Puntos: 7
Respuesta: visual basic y sql

Código VB:
Ver original
  1. Private Sub Timer1_Timer()
  2.  
  3.     Me.lblFecha.Caption = Date
  4.     Me.LblHr.Caption = Time
  5.    
  6. End Sub

Con eso logras cargar en 2 labels la fecha y la hr actuales y si el timer le seteas un intervalo de 999 milisegundos x ej, tendras un reloj en el formulario y no solo la fecha u hora estaticos.
Si necesitas sacar el año, mes o dia puedes usar las funciones Year(Date), Month(Date), etc en VB.
Espero te sirva de algo esto, si es que no entendi mal lo que necesitabas...
Salutte!!
  #3 (permalink)  
Antiguo 11/04/2012, 13:11
 
Fecha de Ingreso: abril-2012
Ubicación: Caracas
Mensajes: 22
Antigüedad: 12 años
Puntos: 1
Respuesta: visual basic y sql

Hola lojoam gracias por tu respuesta, pues el formulario tiene la fecha y hora actuales no esta estatico, si prueban pueden verificar el reloj corre, solo que de el textbox donde me muestra la fecha es que quiero que me llame las fechas que correspondan justo con la fecha actual( valga la redundancia jeje). se que se podria utilizar el year(date) pero me gustaria que se tomara el dia mes y año completo y en que parte de la sentencia sql es que debe ir?? alli esta mi gran duda :(
  #4 (permalink)  
Antiguo 11/04/2012, 13:32
 
Fecha de Ingreso: abril-2012
Ubicación: Caracas
Mensajes: 22
Antigüedad: 12 años
Puntos: 1
Respuesta: visual basic y sql

un ejemplo de lo que he intentado es el siguiente pero no me corre la aplicacion quisiera saber como debe ser la sentencia
sql = "select id, fecha from Table_1 where fecha=text1.text"

me han dicho que utilize el dataset pero luego que lo incorporo me sale un mensaje que no hay tipo definido por el usuario y de verdad por ser nueva no tengo ni la mas remota idea de que se trata.
  #5 (permalink)  
Antiguo 11/04/2012, 13:42
Avatar de lojoam  
Fecha de Ingreso: marzo-2012
Ubicación: Springfield
Mensajes: 32
Antigüedad: 12 años, 2 meses
Puntos: 7
De acuerdo Respuesta: visual basic y sql

Cita:
Iniciado por cindycpc3 Ver Mensaje
un ejemplo de lo que he intentado es el siguiente pero no me corre la aplicacion quisiera saber como debe ser la sentencia
sql = "select id, fecha from Table_1 where fecha=text1.text"

me han dicho que utilize el dataset pero luego que lo incorporo me sale un mensaje que no hay tipo definido por el usuario y de verdad por ser nueva no tengo ni la mas remota idea de que se trata.
Cindy, con esto ultimo termine de entender cual era tu problema.
Yo no soy experto en VB6 pero por lo que he venido desarrollando te recomiendo empieces a mirar y estudiar el uso de Datagrid y ADODC que son muy utiles y practicos para traer y mostrar datos de una BD.
No asi para operar en la planilla, el Datagrid es mas bien un espejo de lo q hay en la Tabla de la BD en SQL. Para una planilla mas "modificable" te recomendaria el MSHFlexGrid x ejemplo.
En fin, proba de modificar la sentencia de esta forma:
sql = "SELECT ID,FECHA FROM TABLE_1 WHERE FECHA='" & text1.text & "'"

Espero te haya servido de algo mi pequeña ayuda..
  #6 (permalink)  
Antiguo 13/04/2012, 10:15
 
Fecha de Ingreso: abril-2012
Ubicación: Caracas
Mensajes: 22
Antigüedad: 12 años
Puntos: 1
Respuesta: visual basic y sql

listo lojoam gracias si me sirvio tu ayuda dejo el codigo por aca para el que lo necesite

Private Sub Timer1_Timer()
Dim Hora As String
Dim Fecha As String
Dim sql As String



'Función que te devuelve la hora
Hora = Time()
Fecha = Date


'g_db.Open "driver={SQL Server};server=192.168.0.3;uid=profit;pwd=profit;d atabase=distorbe"
'''prueba
g_db.Open "driver={SQL Server};server=SERVIDOR2;uid=profit;pwd=profit;dat abase=Prueba1"
sql = "select a.fact_num, a.despacho, b.campo5, c.status from tabla_factura a inner join tabla_clientes b on a.co_cli = b.co_cli left join tabla_Enviados c on a.fact_num = c.fact_num"
rs.Open sql, g_db, adOpenKeyset

If Hora = "10:42:00 a.m." Then
'ejecutas el sql

g_db.Execute sql
'Función que te devuelve la hora
Hora = Time()
If Hora = "05:30:00 p.m." Then
'ejecutas el sql
'rs.Open sql, g_db, adOpenKeyset
g_db.Execute sql

'recorres el recordset para mandar lo sms
If Len(sqlfilter) > 0 Then sqlfilter = " where " & sqlfilter & " Order by id "

'-- ejecuta la consulta
sql = sql & sqlfilter

If rs.RecordCount > 0 Then
sql = "select a.fact_num, a.despacho, b.campo5 from tabla_factura a inner join tabla_clientes b on a.co_cli = b.co_cli where a.status = 0 and convert (char (10) ,campo5, 103) = 'fact_num'"




End If
End If

rs.Close
g_db.Close

End Sub

Etiquetas: basic, sql, vb, visual
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




La zona horaria es GMT -6. Ahora son las 08:03.