PREGUNTAS CONTESTADAS - Visual Basic

 Hay un total de 3030 Preguntas.<<  >> 

    Pregunta:  1278 - VACIAR EL BUFFER DEL TECLADO
Autor:  Rodrigo Goncalves
Hola! Estoy desarrollando una aplicacion y necesito poder vaciar el buffer del teclado y el mousse en un momento determinado. Es decir, luego de atender un evento del usuario (mousse o teclado), necesito que antes de salir del evento borre todos las acciones que el usuario hizo mientras esperaba. Desde ya mil gracias.
  Respuesta:  Eduardo Cañedo
Conozco una forma de controlar el buffer durante la acción, no se si sea lo que buscas.

En los eventos KeyDown, KeyUp, KeyPress, MouseDown y MouseUp encontramos las variables KeyCode, KeyAscii y Button, las cuales podemos manipular antes de que concluya el evento, podemos cambiar estos valores en el transcurso del evento a nuestra conveniencia, para anular los teclas se usa KeyCode = 0 ó KeyAscii = 0, dependiendo del evento y para el mouse se usa el Button = -1, ejms:

El Text1 no contendra nada por mas que se teclee:

Private Sub Text1_KeyPress(KeyAscii As Integer)
KeyAscii = 0
End Sub

En el Text1 se escribirá solo la letra "a" sea cual sea la tecla que se oprima:

Private Sub Text1_KeyPress(KeyAscii As Integer)
KeyAscii = 97
End Sub

Puedes usar tambien el evento KeyPreview del Form y ponerlo en True, para que independientemente del objeto que tenga el Focus caches las teclas que se han presionado y manipularlas en dichos eventos pero en el Form, ejm:

En este caso te posicionas en el Text1 y escribes, ademas de no aparecer texto en el Text1, el mensaje NO aparecera, por que se ha anulado la tecla desde la Form y este tiene el KeyPreview = True:

Private Sub Form_KeyPress(KeyAscii As Integer)
KeyAscii = 0
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
MsgBox "¿Que se presiono?"
End Sub

    Pregunta:  1279 - APIS PARA EL PUERTO DE COMUNICACION
Autor:  Juan Cesar
Necesito saber que funciones APIs se utilizan para poder leer, enviar datos ademas, setear los puertos seriales (sin utilizar el control Activex MsComm o cualquier control de terceros Activex)
  Respuesta:  Juan
Para Abrir los puertos de comunicacion con las funciones APIs tenes las siguientes funciones:
* CreateFile (Con esta Funcion se Abre el puerto de comunicacion)
* CloseHandle (Con esta funcion se Cierra el puerto)
* ReadFile y WriteFile (Son funciones para leer en los puertos)
* GlobalAlloc (funcion para "pedir" memoria a Win9x para crear un buffer intermedio , ya que la comunicacion serial es rapida, )
  Respuesta:  Pablo Gonzalez
Mira, la verdad es que la respuesta no la se, pero si quieres yo tengo un visor de la Api de Windows en el cual tienes hasta ejemplos de uso.

Si lo deseas solo avisame y te lo envio!

El_Loco

    Pregunta:  1284 - MOSTRAR UN ARCHIVO DE AYUDA (*.CHM)
Autor:  Genaro Sanchez
Hola a todos, tengo una pequeña pregunta.
Como puedo mostrar un archivo de ayuda (*.chm).
Pero no haciendolo desde Project1 Properties y seleccionando un archivo, ni tampoco con control que se llama HHOPEN.OCX, sino que haciendolo con codigo, me imagino que se hace una llamada a la API de Windows. Como le puedo hacer. Yo ya tengo el codigo para hacerlo pero para archivos (*.hlp), no es lo mismo, ya probe. Pero yo quiero hacerlo con archivos (*.chm).
Como puedo hacer eso???

Gracias de antemano

Genaro Sanchez
  Respuesta:  lenin parra
En un módulo de código debemos copiar la siguiente declaración del API y dos constantes públicas:
Declare Function HtmlHelp Lib “HHCtrl.ocx” Alias “HtmlHelpA” _
(ByVal hwndCaller As Long, ByVal pszFile As String, _
ByVal uCommand As Long, dwData As Any) As Long
Public Const HH_DISPLAY_TOPIC = &H0
Public Const HH_HELP_CONTEXT = &HF

Los argumentos de la función HtmlHelp y su respectiva funcionalidad son los siguientes:
Argumento Descripción
HwndCaller Es un manejador de una ventana de aplicación o Null. Este manejador debe ser usado como el propietario o el contenedor de la ayuda HTML, dependiendo como sea usado. En VBA, en vez de usar vbNullString establecer este parámetro a 0.
PszFile Es el string que se corresponde con el path del archivo de ayuda. Opcionalmente puede especificar en que tipo de ventana se ha de visualizar.
UCommand Es la acción a realizar, o como mostar tópicos de ayuda. Pude ser usado con cualquiera de los dos comandos declarados como constantes HH_HELP_CONTEXT o HH_DISPLAY_TOPIC. Sólo se ha llegado a probar con éxito HH_HELP_CONTEXT.
DwData Especifica el topic ID.

Para lanzar la ayuda correspondiente a un formulario únicamente hay que hacer una llamada a la función HtmlHelp con los parámetros deseados. En nuestro ejemplo, se hizo en el evento Click del botón cmdAyuda (dado que no puede ser lanzada pulsando la tecla F1), pero claro está puede hacerse la llamada desde el evento que se desee.

Private Sub cmdAyuda_Click()
Call HtmlHelp(0, "c:\ayudahtml\ejemplo.chm", HH_HELP_CONTEXT, _
ByVal Me.HelpContextID)
End Sub
  Respuesta:  Jose Reynaldo Chavarria Quiñonez
Si lo que queres es solo abrir el Archivo *.chm sin dirigirte a una direccion especifica del archivo entonces podes usar este Modulo que premite abrir cualquier tipo de archivo como si le hicieras doble click en el Explorador de windows...

Por la largada de la respuesta, esta en el archivo resp1284.txt.
  Respuesta:  Antonio M. Estévez Lorenzo
Para poder hacer lo que quieres necesitas dos ficheros llamados htmlhelp.h y htmlhelp.lib que vienen con el compilador de ayuda de Microsoft Html Help Workshop. Si no lo tienes, lo puedes descargar de:
http://msdn.microsoft.com/workshop/author/htmlhelp/default.asp
Una vez instalado, encontrarás los ficheros en los subdirectorios include y lib.
Si utilizas Visual C++, sólo tienes que usar las funciones que aparecen en el fichero htmlhelp.h y enlazar el proyecto con el fichero htmlhelp.lib.
Si usas Borland C++, C++ Builder o Delphi el proceso es más complicado porque hay que convertir htmlhelp.lib al formato de Borland. Yo ya lo tengo convertido, así que si no sabes mándame un e-mail indicándome que compilador usas y te lo envío.

    Pregunta:  1289 - LLAMAR A UNA BASE DE DATOS EN UN NT MEDIANTE ODBC
Autor:  Xavi
Cual es el codigo fuente que me permite llamar a una base de datos (ACCESS) ubicada en un servidor NT desde una estacion de trabajo mediante el ODBC.
  Respuesta:  Victor Hernandez
Referencia tu proyecto a la siguiente libreria:
Microsoft ActiveX Data Objects

Y este el código que necesitarias

´Conexión original ADO.
Public cnnDB As ADODB.Connection


dim sDSN as string
dim iODBCDriver as string
dim sConnectionString as string
dim sDriver as string
dim sPassword as string
dim sUsuario as string

´AliasODBCdelaBaseDatos
sDSN="AliasODBCdelaBaseDatos"

;(0=Access, 1=SqlServer, 2=Oracle)
iODBCDriver=0

Select Case iODBCDriver
Case 0: sDriver = "ACCESS"
Case 1: sDriver = "SQL SERVER"
Case 2: sDriver = "ORACLE"
End Select

sConnectionString = "driver=" & sDriver & ";data source=" & sDSN & ";uid=" & sUsuario & ";pwd=" & sPassword

Set cnnDB = New ADODB.Connection
cnnDB.Open sConnectionString

    Pregunta:  1293 - PROBLEMAS CON TABLAS RELACIONADAS
Autor:  Adrian Lozano
Hola a todos , mi problema es el siguiente.
Tengo un programa de bd(access) en el cual tengo varias tablas relacionadas. Y en un programa que hice en vb5 a veces no me deja borrar o agregar datos debido a que tengo registros relacionados. ¿Que podria hacer?
  Respuesta:  HORACIO Acosta
Pasé por una situación idéntica.
Si NO deseas cambiar las relaciones puedes escoger la opción ´actualizar - eliminar en cascada registros relacionados´ desde Access. También te puede servir este ejemplo: "Un cliente tiene varias pólizas, pero según las normas de la base de datos no puede existir una póliza sin cliente, lo que quiere decir que para agregar una nueva póliza, primero debe existir su respectivo cliente." solución: guardo primero el nuevo cliente y posteriormente su póliza, así la B.D. no mostrará error.
  Respuesta:  jesus sanchez
Tienes que borrar las relaciones hechas en la base de datos, si es que definiste las relaciones en el administrador de relaciones, y manipular cada tabla independientemente.

Tube ese mismo problema y fue la manera que lo resolbi no utilizar el administrador de relaciones de access.

Espero haberte ayudado.
bye.

    Pregunta:  1311 - MANIPULAR RESULTADOS DE PROD. ALMAC. DE SQL SERVER
Autor:  Jorge Morales
Hola a todos, estoy aprediendo a utilizar procedimientos almacenados(PA) en SQL SERVER 7.0, y estoy trabajando en conjunto a VB5, mi problema, es como rescato los valores desde VB y asi poder manipularlos, encontré un ejemplo usando CREATEQUERYDEF, pero lo copie y no me funciona.
Si pueden ayudarme
De antemano
Muchas Gracias
  Respuesta:  Gustavo Baltodano Guerrero
Si entendí tu pregunta, quieres usar los valores de rotorno de un PA, otra manera fácil es un recordset de VB al cual le asignas la sql en sintaxis de SQLSERVER para disparar al PA y obtienes en el recordset todos los parametros de salida (output) que declarastes en el PA y lo recuperar a través de la propiedad .fields(Index).
Yo lo hago y me funciona de manera excelente. Si no te funciona te puedo enviar un trozo de código como ej. El createquerydef tambien debería de funcionarte.

    Pregunta:  1324 - VB & FUENTES
Autor:  Luis Daniel Sáenz
Hola a todos!...
Necesitaría información sobre como poder hacer una vista previa de una fuente, sin necesidad de instalarla, mediante código, sin utilizar la aplicación Fontview de windows.

Y también como poder instalarla desde una aplicación

Gracias!
  Respuesta:  aquila
Creo que podes solucionar tú problema creando una aplicación con un drivelistbox, un dirlistbox y un filelistbox para poder seleccionar donde esta la fuente, tambien podes agrgar un textbox o un richtextbox con algún texto de ejemplo y que se modifique según la selección y si te gusta la instalas en tú computadora espero que esta guía te sirva

    Pregunta:  1328 - AJUSTAR EL BALANCE DEL SONIDO
Autor:  Daniel Micol
Hola,

Resulta que estoy haciendo en Visual Basic un reproductor de CD-ROM de audio con control de volumen, y quería saber si alguien sabía como modificar el balance del sonido de tal manera que se oyera sólamente por el altavoz izquierdo o por el derecho.

Gracias
  Respuesta:  Gasofa
Se puede modificar con un módulo llamado MIXER.

    Pregunta:  1336 - COMO USAR EL BUTTON EN UN DBGRID
Autor:  Ferran Balaguer Farré
En la ayuda de VB te dice que si activas la propiedad "button" en una columna puedes hacer que al pulsar en una casilla de esta columna se despliegue una lista con el contenido de un combobox o de un dblist pero no te dice como.
Agradecería que si alguien sabe como hacerlo me diera por lo menos alguna pista.
  Respuesta:  Marger Arteaga
Fe errata:

En la Respuesta Anterior se me olvido incluir un Parentesis: aqui Incluyo el Parentesis en la Linea Correcta..

.Top = DBGrid1.Top + DBGrid1.RowTop(DBGrid1.Row) + DBGrid1.RowHeight

Gracias a Un Amigo que me lo Hizo saber..
  Respuesta:  Marger Arteaga
A como dice la Ayuda VB, se establece la propiedad "Button" del Objeto column del DbGrid y se utiliza el Eventto ClickButton.

Pasos para Crearlo.

1- Inserta el Dbgrid y enlazalo de forma normal.
2- Establece la propiedad Button de las columnas que deseas utilizar.
3- Inserta, por ejemplo un ListBox, Llenalo con los Datos Necesarios, y establece su propiedad Visible a False.
4-Este es el código para el evento click:

Private Sub DBGrid1_ButtonClick(ByVal ColIndex As Integer)
Dim C As Column
´ Asumo que 1 es la columna que se estableció la propiedad
If ColIndex = 1 Then
Set C = DBGrid1.Columns(ColIndex)
With List1
´Muestra la lista.
.Left = DBGrid1.Left + C.Left
.Top = DBGrid1.Top + DBGrid1.RowTop DBGrid1.Row) + DBGrid1.RowHeight
.Width = C.Width + 15
.ListIndex = 0
.Visible = True
.ZOrder 0
.SetFocus
End With
End If
End Sub

5- Para los eventos del ListBox
Private Sub List1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case vbKeyReturn
´Asigma el texto seleccionado.
DBGrid1.Columns(1).Text = List1.Text
List1.Visible = False
Case vbKeyEscape
List1.Visible = False
End Select
End Sub

Private Sub List1_LostFocus()
´Oculta la lista al perder el foco
List1.Visible = False
End Sub

Private Sub List1_DblClick()
List1_KeyPress vbKeyReturn
End Sub

    Pregunta:  1339 - VISUAL/ORACLE
Autor:  jessica esther maldonado
Estoy conectada a una base de dato Oracle, en la cual puedo hacer consultas sin ningun problema, ahora bien lo que necesito es poder ejecutar desde la aplicación Visual Basic la llamada a un procedimiento almacenado con sus respectivos parámetros, que updetee la información de un registro.
El string que envío desde Visual al probrarlo directamente en el SQLPlus funciona.
Es la forma de llamar desde Visual la que no me funciona.
Mi código es el siguiente
sqlq = "idp_mant_usuario " + "(´" + rut_entrada + "´,´" + txt_nombre + "´," + Mid(cbo_nivel.Text, 2, 2) + "," + Mid(cbo_banco, 2, 5) + "," + "1)"
Set tabla_graba = base_datos.CreateDynaset(sqlq, 64)
luego de ejecutar esto me da el siguiente error
ODBC-Call failed.(Oracle)(ODBC Oracle Driver)(Oracle OCI)
ORA-00900:invalid SQL statement.(#0900)
Si pueden entregarme la solución a esta información se los agradecería mucho.

Atte.
  Respuesta:  Carlos Martinez
Has probado con la sentencia Execute

ej:
cn.Execute sqlq

siendo sqlq el mismo string que tienes y cn un objeto connection.
ve por ese lado...
saludos...

  Respuesta:  Jose Zamora Zorrilla
sqlq = "idp_mant_usuario " + "(´" + rut_entrada + "´,´" + txt_nombre + "´," + Mid(cbo_nivel.Text, 2, 2) + "," + Mid(cbo_banco, 2, 5) + "," + "1)"
base_datos.EXECUTE(sqlq, Dbfailonerror)

|<  <<  22 23 24 25 26 27 28 29 30 31 32  >>  >|