PREGUNTAS CONTESTADAS - Visual Basic

 Hay un total de 3030 Preguntas.<<  >> 

    Pregunta:  5377 - PROBLEMAS CON FECHAS
Autor:  Jose
Hola amigos tengo un problema estoy trabajando con access del officce 97 y haciendo una aplicacion en visual 6, con conexion odbc al llenar el formulario con los datos y al ir a grabar en la base de datos me graba cualquier cosa en la fecha ejemplo
31/01/01 y graba 19/01/2447
reviso las variables y hasta ir a grabar las variable de fecha van correctas, pero al grabar todo mal
  Respuesta:  Miguel Lucero
Jose

si usas un string sql para grabar datos de fechas en la base de datos tenés que hacerlo de la siguiente forma

ej.

Fecha="31/01/01"
SQL="UPDATE <tabla> SET Fecha=#" & format(cdate(fecha),"mm-dd-yyyy") & "#" & " WHERE ..."

Fijate como hay que pasarle las fechas entre #..# y con formato en inglés.

Espero te sirva

    Pregunta:  5384 - ACTIVAR CAJA REGISTRADORA
Autor:  Antonio Alvarez
Estoy programando un punto de venta y necesito saber como puedo hacer para activar la gabeta de una caja registradora para guardar el dinero y dar el cambio.
Alguna Sugerencia Gracias.
  Respuesta:  Alejandro Cepeda Cepeda Pirela
Hola Antonio, si usas una caja registradora que se conecta a través del Com1 o Com2, puedes utilizar el control MSComm, si no esta visible en la barra de controles, debes agregarlo en el menú Proyecto en la opción Componentes.

Este codigo te sera de utilidad.

Private Sub Command1_Click()
'Se le asigna el número del puerto
MSComm1.CommPort = "1"

'Se realiza la apertura del puerto
MSComm1.PortOpen = True

'Se le envía un carácter al puerto
MSComm1.Output = "*"
'Según se mientras mas cantidad de caracteres
'le envíes el puerto la gaveta se abre mas
'rápidamente

'Se cierra el puerto
MSComm1.PortOpen = False
End Sub

Antonio cualquier otra pregunta me puedes escribir.

    Pregunta:  5386 - APARICIÓN ALEATORIA DE FORMULARIOS
Autor:  Laura Peñaranda Molinero

Hola.

Hace unos días puse una consulta en un foro y como veo que no hay respuesta voy a intentarlo por este medio. se refiere a la APARICION ALEATORIA DE UN CONJUNTO DE FORMULARIOS. Estoy empezando a pensar que no se puede hacer con Visual Basic. Pero la verdad es que me haría mucho falta por que estoy realizando el proyecto de fin de carrera y si no consigo que aparezcan aleatoriamente el codigo del programa se me va a estender muchísimo.

He probado con algo como:

X = Int ( ( form20 * Rnd ) + 1) para que apareciera un formulario entre el 1º y el veinteavo, guiandome por:

X = Int ( ( 20 * Rnd ) + 1) que genera un nº aleatorio entre 1 y 20, pero claro esta función solo acepta números y me da error.

Tambien he intentado transformar la variable formulario a una que pudiera utilizar con estas funciones anteriores, pero no lo he conseguido.

Voy a seguir probando, por que como quien dice, me es vital. Pero me gustaria, si puede ser , que alguine me dijera si se puede hacer con visual de una manera más o menos sencilla, o bien, si a alguien se le ocurre alguna solución con código.

Os agradecería mucho que me dieseis una pista o solución, si es que la hay( y si no decirme, por favor, que no se puede hacer)

GRACIAS¡¡¡
  Respuesta:  el diablo
ademas de todas la ideas dadas por los demas compañeros debes manejar el objeto ActiveForm (consulta la ayuda de Vb o algún libro o manual para manejar este objeto). Tuve un problema parecido al tuyo y además de variables y nums. aleatorios tuve que utilizar el ActiveForm para controlar que form se visualiza y cual no. Saludos.
  Respuesta:  Jose G. Montalvo
Puede hacer lo siguiente:
X = Int ( ( 20 * Rnd ) + 1)
select case x
case = 1
form1.show
case = 2
form1.show
etc
  Respuesta:  Miguel Lucero
Laura, si entendí bien tu problema podés hacer algo similar a lo siguiente:
si X = Int ( ( 20 * Rnd ) + 1) te devuelve un número aleatorio y tus formularios se llaman form1..form20 una forma podría ser la siguiente:

1 dim frm as form
2 dim xnombre as string

3 X = Int ( ( 20 * Rnd ) + 1)
4 xnombre="Form" & Trim(Format(X,"0"))
' Recorrer la colección de formularios
5 for each frm in forms
6 if frm.name=xnombre then
7 frm.show
8 exit for
9 end if
10 next

El código no lo he probado porque no tengo el VB a mano pero la idea es generar una variable con el nombre del formulario en forma aleatoria (línea 3 y 4) y luego recorriendo la colección de formularios de la aplicación (5) verificar el nombre del formulario encontrado con el nombre generado aleatoriamente (6), luego por ejemplo mostrarlo (7)

Espero te sirva

NOTA: los números de línea son solo para aclarar el código

  Respuesta:  Javier
Laura,
No se si te servirá, pero quizás podrías hacer esto
(1) Cargar los formularios y dejarlos ocultos algo así como
Form2.Show
Form3.Show
Form2.Hide
Form3.Hide

Entonces puedes emplear la colección de formularios cargados forms así
forms(1).show
forms(1).hide

En lugar de 1 puedes poner una variable que sea aleatoria.
El único problema es que si cierras el formulario y se descarga, entonces deja de estar en esta colección

Un saludo
Javier

    Pregunta:  5402 - REPORTE AVANZADO
Autor:  Olga Cañedo Ramírez
hola. Ante todo gracias al que me pueda ayudar.

Necesito generar un reporte desde visual basic 6, donde se permita seleccionar a los usuarios los campos que se desean imprimir, estoy usando el Datarepeater, ya tengo la interfaz donde se permite hacer esta seleccion de campos y se genera una consulta(query), pero no se como en el datarepeater se le pueda hacer para variar el número de campos que se pueden imprimir, por ejemplo si el usuario decidio que el reporte se genere solo con los campos de nombre del empleado y su sueldo de la tabla de empleados que tiene 10 campos en total, y si al siguiente dìa decide generar otro reporte pero ahora con los campos de nombre del empleado, sueldo, edad, horas trabajadas.

espero que me haya explicado.
al que haya pasado ya por esto, por favor ayudeme que no se que hacer, acepto soluciones aunque no sea con el datarepeater.
saludos
  Respuesta:  Edward Arias
Lei tu problema rapidito... porque estoy buscando algo en la Web, si conoces Crystal Report...listo!

Usando Formulas / Parametros con la seleccion de los campos que desees mostrar, segun sea el query.

Bueno, cualquier duda... me escribes... bye

    Pregunta:  5425 - ABRIR INSTANCIA DE ACCESS CON PASSWORD
Autor:  Urbandisa Urbandisa
Como puedo al abrir la instancia de Access pasarle la password a la vez?

Ya que puedo abrirla asi:

Dim acApp As Access.Application

Set acApp = New Access.Application

acApp.ProductCode

acApp.OpenCurrentDatabase "C:\bd1.mdb"

acApp.Visible = False

pero no puedo si tiene password porque no se donde pasarle el parametro de la password, ya he estado probando al azar y nada...

Gracias por adelantado.

Pedro.
  Respuesta:  Gerardo Dávila
Que ondas Pedro!

Bueno, el siguiente código quizás te pueda ayudar a lo que necesitas, ponlo en un botón de apertura de la base de datos:

Private Sub Command1_Click()
Dim db as Database
Set db = OpenDatabase("C:\my documents\basedatos.mdb",false,false,"pwd=MiClave")
msgbox("Base de datos abierta")
db.close
End Sub

Por supuesto la instrucción más importante es la tercera, podrás observar que existe un cuarto parámetro con respecto a la instrucción Opendatabase, la cual no es muy documentada y tiene que ver con la clave de acceso, debes escribirla con las comillas tal y como se muestra en el ejemplo, al igual que la palabra reservada pwd.

Espero que te sea de utilidad, cualquier cosa, ya tienes mi correo.

    Pregunta:  5429 - COMO EJECUTO CON VISUALBASIC EL COMANDO PING
Autor:  Miguel Montiel
Les agradezco si alguien me puede ayudar como puedo ejecutar el comando ping seguido de una dirección IP en visual basic y ver la ejecución en un formaulario, ya que quiero elaborar un proyecto que me permita monitorear enlaces dedicados atravez de sus IP address asignadas.
  Respuesta:  daniel francisco figueroa aguirre
Hola miguel.

Esta respuesta, la encontre en unos apuntes, pero era para ejecutar comandos en DOS e imprimirlos VB. Lo modifique para que fuera util y asi resolver tu problema.

bien aqui va el codigo (Se deben utilizar API de windows).

Por la longitud de la respuesta, esta en el archivo resp5429.txt.

    Pregunta:  5432 - AGREGAR ÍCONO AL LADO DEL RELOJ
Autor:  Aloysio Gabriel Memmel Almeida
Hola, quisiera saber como puedo, en VB5, agregar un ícono al lado del reloj, así como el control de volumen, la conección a internet, etc. Si alguien puede ayudarme por favor que me envíe un e-mail. Gracias
  Respuesta:  IVANRES
O.K.

SIN DESMERITAR LA AYUDA DEL AMIGO JOAN, TAMBIEN EXISTEN CONTROLES ACTIVEX QUE TE SIMPLICAN EL TRABAJO SINO ERES AMANTE A LA API DE WINDOWS.

http://www.portalvb.com/Cont32/Notificador.zip

CHAO...
  Respuesta:  Joan-Baptista Fàbregas Muñoz
Para eso necesitas utilizar la API de Windows.

Hay estas dos paginas Web que te explican detalladamente como hacerlo:

http://www.vb-world.net/tips/tip61.html
http://www.vbsquare.com/tips/tip178.html

Saludos.

    Pregunta:  5439 - COMO GUARDAR DATOS CONTENIDOS EN UN LABEL DE ACCESS.
Autor:  Aitor Pliego Rubio
Estoy haciendo un programa y necesito guardar en una base de datos el contenido de unos cuantos label y poder abrirlos posteriormente desde el programa.¿como podria hacerlo?

si es posible responded con un ejemplo.Gracias
  Respuesta:  rolivera
No comprendo bien tu pregunta,pero si almacenar los labels puedes tener variar forma:

1.- Mandarlo a la configuracion del Windows (Regedit)
con SaveSetting y luego recuperarlo con Getsetting

EJEMPLO

creas el formulariIo en ACCESS
Option Compare Database
Option Explicit

Private Sub Form_Load()
Dim obj As Object
For Each obj In Controls
If TypeOf obj Is Label Then
obj.Caption = DoGetLabel(obj.Name)
End If
Next
End Sub

Private Sub Form_Unload(Cancel As Integer)
Dim obj As Object
For Each obj In Controls
If TypeOf obj Is Label Then
DoSaveLabel obj.Name, obj.Caption
End If
Next
End Sub
y creas un modulo con las siguientes funciones:

Option Compare Database
Option Explicit

Function DoSaveLabel(ByVal nLabel As String, ByVal str As String)
SaveSetting CurrentDb.Name, nLabel, "DATO", str
End Function

Function DoGetLabel(ByVal nLabel As String) As String
DoGetLabel = GetSetting(CurrentDb.Name, nLabel, "DATO", "")
End Function

2.-Crear un archivo de recursos

3.- Grabarlo en una tabla que contenge
ID
NombreObj
CaptionObj
  Respuesta:  rolivera
No comprendo bien tu pregunta,pero si almacenar los labels puedes tener variar forma:

1.- Mandarlo a la configuracion del Windows (Regedit)
con SaveSetting y luego recuperarlo con Getsetting

EJEMPLO

creas el formulariIo en ACCESS
Option Compare Database
Option Explicit

Private Sub Form_Load()
Dim obj As Object
For Each obj In Controls
If TypeOf obj Is Label Then
obj.Caption = DoGetLabel(obj.Name)
End If
Next
End Sub

Private Sub Form_Unload(Cancel As Integer)
Dim obj As Object
For Each obj In Controls
If TypeOf obj Is Label Then
DoSaveLabel obj.Name, obj.Caption
End If
Next
End Sub
y creas un modulo con las siguientes funciones:

Option Compare Database
Option Explicit

Function DoSaveLabel(ByVal nLabel As String, ByVal str As String)
SaveSetting CurrentDb.Name, nLabel, "DATO", str
End Function

Function DoGetLabel(ByVal nLabel As String) As String
DoGetLabel = GetSetting(CurrentDb.Name, nLabel, "DATO", "")
End Function

2.-Crear un archivo de recursos

3.- Grabarlo en una tabla que contenga
ID
NombreObj
CaptionObj

    Pregunta:  5440 - ESTADO DE LA IMRESORA EN NT
Autor:  Alejandro Cepeda Pirela
Tengo una aplicacion en VB6 que imprime directamente al puerto con Open "LPT1" For OutPut As #1, esto funciona perfectamente en NT. pero como puedo chequear si la impresora se encuentra en linea.
  Respuesta:  A. Z.
Usa las funciones del archivo winspoll.drv tales como:
1.getprinter. el argumento de salida pPrinter es una tipo de estructura PRINTER_INFO_2, en donde hay un campo que se llama Status. Dicho campo maneja los siguientes valores:
Const JOB_STATUS_PAUSED = &H1
Const JOB_STATUS_ERROR = &H2
Const JOB_STATUS_DELETING = &H4
Const JOB_STATUS_SPOOLING = &H8
Const JOB_STATUS_PRINTING = &H10
Const JOB_STATUS_OFFLINE = &H20
Const JOB_STATUS_PAPEROUT = &H40
Const JOB_STATUS_PRINTED = &H80
2.getjob

Public Declare Function GetPrinter Lib \"winspool.drv\" Alias \"GetPrinterA\" (ByVal hPrinter As Long, ByVal Level As Long, pPrinter As Any, ByVal cbBuf As Long, pcbNeeded As Long) As Long

Public Declare Function GetJob Lib \"winspool.drv\" Alias \"GetJobA\" (ByVal hPrinter As Long, ByVal JobId As Long, ByVal Level As Long, pJob As Byte, ByVal cdBuf As Long, pcbNeeded As Long) As Long

Si queres ejemplos, tenes que buscarlos en la RED.
Espero que esto te sirva de Luz.

    Pregunta:  5445 - CONTROL WINSOCK
Autor:  Eloy Martin Silva Vásquez
Estoy utilizando el control winsock, y esta vez voy a utilizarlo en la pc de mi casa, pero lo primero que tengo que hacer es instalar una tarjeta de red. mi pregunta es no hay ningun problema si instalo una tarjeta BNC o con conector RJ45, ya que la pc no va ha estar conectada a otra o a un servidor.

solo quiero instalar la tarjeta de red, para fines de programación, estudio, y desarrolo, ya que sin tarjeta de red no puedo usar el winsock.?

gracias.
  Respuesta:  Rodrigo López
No se si entendí bien tu pregunta, pero creo que lo que tu quieres es instalar una tarjeta de red para poder usar el control Winsock.

Si es así, te aviso que no tienes para qué instalar ninguna tarjeta de red.

Si deseas hacer pruebas (programación, estudio y desarrollo) con el control Winsock, puedes crear un cliente y un servidor en un mismo PC y éste puede no estar conectado a ninguna red. Si lo vas a probar en tu PC y no estas conectado a ninguna red, el servidor debe escuchar en la dirección IP 127.0.0.1 (Loop Back) y el cliente debe conectarse también a esta dirección. Eso sí, es necesario que tengas instalado el protocolo TCP/IP en tu equipo.

Puedes hacer todo lo que quieras con tus aplicaciones y está garantizado que también te funcionará cuando instales tus programas (clientes y servidores) en una red de verdad, siempre y cuando esté instalado el protocolo TCP/IP en los computadores en donde instalaras tus aplicaciones.

Si deseas un ejemplo de un cliente y un servidor usando Winsock, envíame un mail.

Espero haber respondido a tu preguna.

Chao y Suerte!

|<  <<  78 79 80 81 82 83 84 85 86 87 88  >>  >|