Visual basic

Que tal: quiero hacer lo siguiente en visual basic y se como hacer ciertas cosas.
En un formulario tengo un objeto calendar 8 y al hacer click sobre el calendario se abre otro formulario donde cuando lo cargo arrastro en una variable del tipo date la fecha clickeada en el calendario.
Lo que quiero hacer es contar cuantos registros tienen esa fecha y que me lo guarde en una variable.
Lo que hice fue lo siguiente.
Private Sub Form_Load()
Dim fechas As Date
Dim a As Integer
Dim rec As Recordset
Set Db = OpenDatabase("D:\visual\calendario.mdb")
fechas = calen.Calendar1.Value
Set rec = Db.OpenRecordset("SELECT Count(*) FROM turnos WHERE fecha = " & fechas & " ;", dbOpenDynaset)
End Sub
Fechas tiene la fecha seleccionada en el calendario
El fecha del select es el campo de la base de datos (esta bien echa la comparación en WHERE?, ¿Sino cómo se hace?)
Turnos es el nombre de la tabla
Una vez echa la consulta como hago para saber como fue el resultado del select count(*), o sea como obtengo el valor del count(*)
Otra cosita, el objeto calendar insertado están los meses y días e ingles, ¿no hay forma de cambiarlo al castellano? ¿O no hay algún calendario en castellano?
Gracias y espero la respuesta.
Saludos cordiales
martin

1 respuesta

Respuesta
1
La consulta echa con Select Count(*) te entrega solo la cantidad de registros encontrados en la tabla que concuerden con lo parámetros que le puesistes, como el WHERE por ejemplo.
Para leer el resultado vos solo tienes leer el único campo que te genero, el
rec. Fields(0)
En ese único campo esta el numero de la cantidad, no tiene nada más ese recordset.
Si tendrías que leer los datos de la consulta, no uilizes el Count(*) y directamente te llena el recordset con todos los datos que quieras y que cumplan con la consulta, y para saber la cantidad de registros que te dio esa consulta utiliza la propiedad rec. RecordCount
esta te da la cantidad de registro en el recordset, al mismo tiempo que tienes todos los datos en el recordset.
Cualquier duda estoy a tu disposición.
leosoft, muchas gracias por ayudarme, probé lo de rec.fields(0) y anduvo bárbaro.
Te hago una consultita más:
Este tramo del código es el que no me sale:
Set rec = Db.OpenRecordset("SELECT Count(*) FROM turnos WHERE fecha = " & fechas & " ;", dbOpenDynaset)
Fecha es el nombre del campo en la base de datos y fechas es una variable del tipo date, no se como comparar el contenido del campo de la base de datos con la variable del tipo date, así como lo tengo yo no funciona.
Gracias por ayudarme
Saludos
martin
El formato que le das a las fechas para la consulta es este:
#mm/dd/aaaa#
Proba de esta forma, los errores se deben a la configuración regional y el idioma de tu maquina, pero de esta forma es más compatible.
Leo muchas gracias por contestarme nuevamente la verdad que solucione todo
antes de finalizar la pregunta quisiera saber una cosita más si no es molestia.
Como puedo hacer un ejectuable y que me incluya los archivos necesarios para que funcionen en otra maquina ya que cuando hago el ejecutable y lo pongo en otra maquina y hago click sobre el calendario me dice que no puede ejecutrlo y me da el error 429
Gracias y perdón por tanta molestia
Saludos
martin
Me alegra que solucionaras todo.
Tienes que hacer un instalador, para eso Visual basic tiene una aplicación llamada "Asistente para empaquetado y distribución", que te genera un instalador con las librerías que tu programa utiliza, de esta manera ejecutan un instalador en cada maquina que quieras hacer funcionar tu programa, es muy interactivo y prácticamente te hace todo solo, cualquier duda que tengas perguntame.
Leosoft: Por tercera vez, muchas gracias, pude hacer los instaladores del programa, me quedaron estas pequeñas duditas:
Primero: cuando hice el instalador por primera vez me quedo de 10mb
Segundo: luego saque algunos archivos y me quedo de 3 mb
Lo que quiero saber si es necesario poner todos los archivos que me salen clickeados o puedo sacar aquellos archivos que me permite hacerlo ya que hay archivos que no me deja sacar. Te pregunto esto ya que el programa que he hecho no es muy grande y me parecía inmenso 7 archivos de instalación.
La ultima cosita: ¿Puedo correr un programa echo en visual basic 6 (como el que he hecho yo, por ejemplo) en una pc 585 de 120 mghz con 32mb de ram?
Gracias mil y si no fuera por vos te juro que no podría haber hecho el programa
Saludos cordiales
martin
Si, una PC 586 de 120Mhz es suficiente para utilizar una aplicación de visual basic, siempre y cuando tu aplicación no realize cálculos complejos o grajicas muy grandes, eso si requiere algo de maquina.
Con respecto al instalador, saca todo lo que te permita sacar, e inculos fíjate que en el menu de visual, donde dice Proyecto, en Referencias, también sacale todo lo que te permita, si utilizas algún componente no te va a dejar sacarlo, así estas seguro de entregar tu aplicación solo con lo que utilizas, nada más.
Luego de generarte un instalador, con sus o su archivo .cab, también te deja en un directorio toda la aplicación y librerías que utilizo para generarte tu instalador, eso si querese bórralo, no es parte de la instalación, eso lo utiliza el asistente en caso de que vos hagas una modificación en tu programa, ya tiene todos los archivos juntos, solo te actualizaría el ejecutable, yo siempre lo borro, total si le hago una modificación siempre es fácil generar la instalación nuevamente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas