PREGUNTAS CONTESTADAS - Visual Basic

 Hay un total de 3030 Preguntas.<<  >> 

    Pregunta:  8757 - INTERFACE CON C
Autor:  Marlon Sanchez
Como puedo crear una interface con C, Visual C, o Visual C++
  Respuesta:  Jorge Eduardo
Las interfases que andas buscando son las tan comentadas API de windows, la diferencia principal es que mientras en Visual C son funciones implícitas, en Visual Basic tienes que declararlas antes...

Checa el programa de API Viewer, distribuido con tu VB...

Cualquier cosa, escríbeme...

    Pregunta:  8787 - ERROR 13 AL TRASPASAR UNA APLICACION DE VB 6 A OTRA MAQUINA
Autor:  Gabriel Rodríguez
QUIERO SABER PORQUE CUANDO INSTALO UNA APLICACION EN VISUAL BASIC 6 EN OTRA MAQUINA QUE NO TIENE VISUAL BASIC 6, EN UNO DE LOS FORMULARIO ENVIA UN ERROR EL NUMERO 13 EN TIEMPO DE EJECUCION "NO COINCIDEN LOS TIPOS". LES COMENTO QUE COPIE LA MISMA BASE DE DATO. SE UTILIZA EL MISMO SISTEMA OPERATIVO. LA APLICACION EN LA MAQUINA QUE TIENE VISUAL BASIC TRABAJA A LAS MIL MARAVILLAS.
ADEMAS EL PROCESO DE GENERACION Y EMPAQUETAMIENTO SE REALIZA CORRECTAMENTE
  Respuesta:  Sebastian Geiser
Gabriel, si bien no se con que motor de datos trabajas lo mas seguro es que se trate de la configuración regional. Chequea el separador decimal y el formato de fechas.
Si es ese el error, deberías controlarlo de alguna forma, o bién hacer una verificación antes de realizar cualquier otra cosa, y dar aviso al usuario.

    Pregunta:  8796 - PROBLEMA CON INDICES DE DBF'S
Autor:  Francisco Alonso
Estoy trabajando en un programa que traspasa informacion de una mdb a una dbf pero el problema es que utilizo una dbf que contiene mucha información, como la estoy usando como dynaset se tarda un muy buen rato (aprox. 45 min. para transferir 200 registros), lo que quiero hacer es utilizar indices en esas tablas para acelerar el proceso. Ya hice los archivos inf con la informacion de los indices pero no se como utilizarla. Me podrian decir como hacerlo, no se si tenga que especificar algo mas al abrir el objeto recordset.

De antemano muchas gracias.
  Respuesta:  Sebastián Geiser
Francisco:
Podés crear todos los índices que creas necesarios.
Lo importante de todo esto es la forma en que los invocás. Si para setear tu recordset utilizas una consulta sql, tratá de incluír en la cláusula 'where' sólo registros indexados, por ejemplo:
"... where CodCliente = 002 and Codproducto = 'SWB'"
para esto CodCliente y CodProducto deberían formar un índice compuesto llamado tal vez, CodClienProd.

El proceso que describís no debería tardar mas de un minuto.
Espero que te sirva de algo.

    Pregunta:  8807 - COMO INSERTO GRAFICAS A UN REPORTE GENERADO CON CRISTAL R.
Autor:  Marcos Cruz
tengo que relizar un reporte de este reporte tengo que generar una grafica pero debe salir en el mismo reporte es decir abajo de los datos que me genera el reporte
  Respuesta:  Sapo Sanchez
mir, lo que debes hacer es enviar los datos a graficr a una bd y el mismo crystal reports, tiene la opcion de generar graficas, creo que no es nada complicado, todo es cuestion de "jugar" un rto con la paqueteria.

    Pregunta:  8812 - AGREGAR VALOR DE CADENA EN EL REGISTRO
Autor:  Pedro m. Andrade
Hola, Mi pregunta es como agregar valor de cadena en el registro de windows a traves de visual basic.
Por ejemplo, quiero que aparezca en "Agregar y Quitar Programas", para eso se utiliza DisplayName y Uninstallstring, se eso pero como les pongo los valores.
  Respuesta:  SuNcO Castañeda
Hola mi chavo, creo ke la respuesta ke te diero respecto al Registro de Windows no te sirve para lo ke tu estas preguntando, ya ke esas instrucciones solo fueron sacadas de un libro (de un ejemplo) pero solo se graban en tu propio programa, algo complicado, solo te digo ke no te sirve

Yo tengo un .OCX ke ya eh mandado a mas de 3 personas ke preguntan como escribir en el Registro de Windows y a todos les a funcionado a la perfeccion

Mandame un mail haciendome tu pregunta y te lo mando junto con un ejemplo
  Respuesta:  José Ariel Limandri
Fijate si te sirve el sigte ejemplo:

'Crear un Form con 3 CommandButton
'usar HKCU for HKEY_CURRENT_USER
'usar HKLM for HKEY_LOCAL_MACHINE
'usar HKCR for HKEY_CLASSES_ROOT & HKEY_USERS & HKEY_CURRENT_CONFIG

Private Sub Form_Load()
Command1.Caption = "Escribir"
Command2.Caption = "Leer"
Command3.Caption = "Borrar"
End Sub

Private Sub Command1_Click()
Dim b As Object
On Error Resume Next
Set b = CreateObject("wscript.shell")
b.RegWrite "HKCU\VBCODE.COM\Value", "Hola Mundo"
b.RegWrite "HKCU\VBCODE.COM\Value1", 0, "REG_DWORD"
b.RegWrite "HKCU\VBCODE.COM\Value2", 0, "REG_SZ"
b.RegWrite "HKCU\VBCODE.COM\Value3", 0, "REG_BINARY"
End Sub

Private Sub Command2_Click()
Dim b As Object
On Error Resume Next
Set b = CreateObject("wscript.shell")
R = b.RegRead("HKCU\VBCODE.COM\Value")
Form1.Caption = R
End Sub

Private Sub Command3_Click()
Dim b As Object
On Error Resume Next

Set b = CreateObject("Wscript.Shell")
b.RegDelete "HKCU\VBCODE.COM\Value"
b.RegDelete "HKCU\VBCODE.COM\Value1"
b.RegDelete "HKCU\VBCODE.COM\Value2"
b.RegDelete "HKCU\VBCODE.COM\Value3"
End Sub

    Pregunta:  8820 - CONVERTIR UNA CADENA DE HEXADECIMAL A DECIMAL
Autor:  Miguel A. Ramirez
HOLA

Normalmente he usado el componente MSCOMM1, para comunicarme con el puerto serial, pero ahora no logro interpretar los datos que me envia un programa en lengueje C, estos estan en hexadecimal, (el engueje C corre en DOS)
El componente MSCOMM1, solo me permite leer y escribir en modo BINARIO y/o CARACTER, pero no logro convertir los datos que llegan al buffer de entrada del puerto serial, para visualizarlos en alguna caja de texto

Por favor ayundenme, a encontrar alguna instrucción (en realidad ya he revisado las instrucciones de la ayuda en VB) o algun metodo mediante dll en C++ ó alguna direccion en la red donde pueda bajar algun dll, que me permita leer el COMM1, con facilidad, GRACIAS por su tiempo y por su ayuda

Sin otro particular reitero un cordial saludo
  Respuesta:  Dante Salazar
Hola Miguel

No se si te entendí bien, parece ser que sí puedes recibir los datos, pero no los logras convertir.

Si llega 8F2A, por ejemplo, y deseas que se muestre directamente la conversión a decimal de cada caracter, sólo tendrías que hacer
for i = 1 to len("8F2A")
x=mid("8F2A",i,1)
text1=text1 & val("&H" & x)
next

Te aparecerá en el text1 815210 (8 del 8, 15 de la F, 2 del 2 y 10 de la A)

Si el formato de los datos que llegan es de 2 digitos hexadecimales, por ejemplo 80,2A etc. y necesitas convertir a decimal el 80 (=128) y el 2A (=42) entonces tienes que utilizar un algoritmo un poco más elaborado. Si este es el caso, escribeme a mi correo que creo que tengo algo por alli

Saludos desde Panamá

    Pregunta:  8823 - IMAGENES DE COREL DRAW
Autor:  Cesar Burgos
de antemano agradesco a quien me ayude a como visualizar una imagen de .CDR (Corel Draw) en Visual Basic.
  Respuesta:  Roberto Avalos V.
Hola! mira lo que yo he hecho es abrir Corel y manipular los objetos desde VB si eso te soluciona el problema (obviamente la imagen .CDR la abririas dentro de Corel) yo te puedo enviar un ejemplo del código que utilizo para ese fin....

saludos

    Pregunta:  8887 - INTERCEPTAR LA ULR DEL NAVEGADOR
Autor:  francisco alonso
si yo pongo en la url del browser:
http://www.loquesea.com
¿hay alguna manera de interceptar desde una aplicacion visual basic ese texto de la url, y redirigir a mi bola si yo deseo poner otra direccion, todo desde otro proceso que corra independientemente?
  Respuesta:  Toasty
Me parece que lo tienes un poco chungo... Lo unico que se puede hacer es agregar un formulario, y agregar a este un control "browser", que en teoria viene incluido con el visual basic, al menos en la version 6.
Este ocx se comporta igual que un navegador, y podrias interceptar la entrada de la URL, ya que para teclear una direccion se deberia hacer sobre un TextBox.
Espero haberte ayudado minimamente.

Saludos

    Pregunta:  8899 - COMO MANEJAR INDICES DE DBASE O FOXPRO
Autor:  Juan Francisco Alonso Silva
Hola que tal, espero me puedan ayudar con esta dudilla.

Estoy trabajando en un programa que traspasa informacion de una mdb a una dbf pero el problema es que utilizo informacion de un dbf que contiene mucha información, como la estoy usando como dynaset se tarda un muy buen rato (aprox. 45 min. para transferir 200 registros), lo que quiero hacer es utilizar indices en esas tablas para acelerar el proceso. Ya hice los archivos inf con la
informacion de los indices pero no se como utilizarla. Quisiera que me explixcaran como le hago.

Muchas gracias.
  Respuesta:  Tomás González
Juan Francisco:

Primero que nada, supongo que estás trabajando con Visual Basic 3.0, máximo 4 para 16 bits... bueno, suponiendo que es así, te sugiero lo siguiente:

De partida la creación de indices, al menos la forma más rápida y cómoda es creándolos con el maravilloso VisData. Esta aplicación es un regalo que te servirá para ver como trabajar con bases de datos con visual basic. Encontrarás ejemplos para la creación de indices con instrucciones Visual Basic. Te recomiendo que veas como trabajar con los objetos tabledfs, que corresponden a colecciones para la creación de tablas, indices e incluso bases de datos ACCESS. También, si estás trabajando con ACCESS que le heches un visatazo a las instrucciones REPAIR DATABASE y COMPRESSDATABASE, las que te pueden ayudar con el manejo de Bases de Datos ACCESS.

Ahora al grano, en realidad si manejas dynaset, sin índices aún con código SQL se te va a poner pesada la pista. Si bien con los índices hacer una consulta con SQL en un dynaset o snapshot es más eficiente, esto no aumenta mucho la eficiencia y de repente ocurren algunos errores inesperados en el rescate de la información, pero no errores de despliege o interrupción del trabajo, simplemente no te va a rescatar toda la información que cumplan con la clave. Lo mejor, al menos en versiones viejas de VB es abrir la base de datos con un opendatabase, que en Dbase o FoxPro corresponderá a la ruta de directorios en dónde se encuentran las tablas.

es decir:

dim db as database

set db = opendatabase("path_tablas", acceso, "dbase iii") (creo que esos son los parámetros, verifica con el help)

luego tienes que abrir la tabla
para lo cual también deberás tener un objeto tipo TABLE declarado:

dim objTabla as TABLE

set objTabla = db.opentable("NOMBRE_TABLA")
Finalmente, estás en condiciones de abrir el indice...

objTabla.index("Nombre del indice")

Bueno, de esta manera ya tienes la tabla abierta con el indice que deseas, ahora tienes que comenzar a trabajar. Para moverte a través de los registros de la tabla tienes varios metodos que te pueden ayudar...

objtabla.movefirst te mueve al primer registro
objtabla.movenext te mueve al próximo registro
objtabla.find es una función de búsqueda (hay otro que ahora no recuerdo ni el nombre ni la sintáxis, asi que te sugiero consultar en el help)
y por supuesto tienes que tener en cuenta los valores que entregan las funciones objtabla.bof() , el que te indica si estás o no en el principio de la tabla y objtabla.eof() la que te indica que has llegado al final de la tabla.

Bueno eso es, por supuesto que bueno es que al final del proceso ejecutes el objtabla.close, que cerrará la tabla, y db.close la cual cierra el acceso a la BD.

Finalmente, te sugiero que tengas cuidado con los registros borrados en dbase, puesto que lamentablemente en VB en BD dbase, foxpro, y paradox no hace eliminación física de los registros, por lo tanto bueno es que te generes, en base a los tabledefs una función que te RE-CREE los indices.. porque tampoco existe un REINDEX de CLIPPER O DBASE.

Bueno, eso es todo, espero que te pueda ayudar.

Saludos
Tomás González
Santiago de Chile.

    Pregunta:  8907 - PROBLEMAS CON INSERT EN SQL CON LAS COMAS
Autor:  Juan Alberto Hernandez Aco
Hola Amigos.

Tengo un problema a la hora de emplear la intruccion INSERT de SQL, a la hora de que en un campo, deseo insertar un valor que tiene entre sus caracteres una coma por ejemplo:
'Asigno valores a mis variables

clave= "15"
nombre = "PATITO, S.A DE C.V"

'asigno a una variable string X mi cadena SQL

X="INSERT INTO EMPRESAS VALUES(" & clave & ",'" nombre & "';"

Y al ejecutar la insercion me envia el error ya que lo toma como si fueran tres campos, por la coma que hay en el nombre de la empresa.

Como podria hacer para agregar al campo este valor con todo y esa coma?

Agradezco de antemano su ayuda y muchas gracias.
  Respuesta:  Jhonny Fonseca
Tu sentncia esta mal, la sentencia es
"INSERT INTO EMPRESAS VALUES(" & clave & ",'" & nombre & "')"

el problema de la coma (,) ocurre cuando tratas de ingresar un valor numerico con decimales que contiene como separador de decimales una coma (configuracion del sistema), como el valor no lleva comillas que indique que es uno solo, lo toma como separador de campos, el problema que puede ocurrir (que es muy comun) es el de intentar ingresar texto que contiene una comilla ('), lo que pasa es qeu SQL toma la (') como delimitador de cadena, seria algo como esto:

clave= "15"
nombre = "PATITO'S, S.A DE C.V"

"INSERT INTO EMPRESAS VALUES(" & clave & ",'" & nombre & "')"

esto dara este valor:
INSERT INTO EMPRESAS VALUES(15,'PATITO'S, S.A DE C.V')

SQL tomara la palabra PATITO como un campo, luego buscar una coma, pero como lo que sigue es una letra, pensara que es un campo, y simplemente botara un error

para solucionar este problema tienes que remplazar en el texto una 1 por 2, para que no bote error

Espero que te sirva de ayuda
  Respuesta:  José Ariel Limandri
No deberias tener problemas al pasar el campo string entre comillas simples como lo muestra tu ejemplo (aunque le falta un parentesis).
Podes probar pasando este campo entre comillas dobles de la siguiente manera:

clave= "15"
nombre = """PATITO, S.A DE C.V"""

X="INSERT INTO EMPRESAS VALUES(" & clave & ",'" nombre & ")"

OJO: debes asegurarte que el orden de los campos sea Clave y luego nombre, de lo contrio error.Por lo cual siempre es recomendable parar el orden de los campos. EJ:

X="INSERT INTO EMPRESAS (Clave, Nombre) VALUES(" & clave & ",'" nombre & "')"

Y de paso te aseguras que funcione con cualquier DBMS ya que el primer ejemplo no es compatible para cualquier Motor.

Suerte. cualquier cosa maileame

|<  <<  102 103 104 105 106 107 108 109 110 111 112  >>  >|