PREGUNTAS CONTESTADAS -

 Hay un total de 3030 Preguntas.<<  >> 

    Pregunta:  48404 - ATRAPAR ERRORES EN VB
Autor:  marga gregorio
Hola, me estoy volviendo loca para intentar gestionar un error de tipos que me da este cachito de código

Private Sub guardarLIB_RG(ByRef lib As String, ByRef destino As Integer)

On Error GoTo TRATAR

If (CInt(lib) < 99) Then
LIBs_RG(CInt(lib)) = LIBs_RG(CInt(lib)) + 1
num_LIBs_RG = num_LIBs_RG + 1
End If

Exit Sub

TRATAR: Errores.Label8 = "Error de tipos"

End Sub

El if da error de tipos porque en vez de leer un entero a veces puede leer un string pero porque no me salta a la etiqueta TRATAR? Me estoy rallando muchisimo, asique si alguien me puede decir donde estoy metiendo la pata, muchisimas gracias :)
  Respuesta:  harold
mira utilisa el err.number para capturar el numero del error y busca la respuesta al error el la ayuda y asi sabras en realidad que es lo que te esta dando el error
  Respuesta:  Carlos Carlos
Que tal como estas mira nose si te sirva aun mi respuesta pero alli te va, primero que nada creo que tu error no esta en el if sino desde el momento donde le envias los parametros de tu procedimiento guradar por ello es que no brinca a la etiqueta TRATAR el erro se da tal y como te lo muestro abajo

guardarLIB_RG(ByRef lib As String, ByRef destino As Integer)

si dices que aveces puede recibir un entero y a veces un string sucede esto

guardarLIB_RG("string", "string" )

desde allí se da el error el segundo parametro que es entero espera entero y no un estring asi que te dice error de tipos y no envia el parametro al procedimeinto que guardar asi que como no entra a tu procedimiento guardar no Brinca a la etiqueta TRATAR, LASOLUCION:

si aveces puede enviar un entero o aveces un string puedes declarar el parametro como Variant y no como Integer debes hacer esto

Private Sub guardarLIB_RG(ByRef lib As String, ByRef destino As Variant)

On Error GoTo TRATAR

If (CInt(lib) < 99) Then
LIBs_RG(CInt(lib)) = LIBs_RG(CInt(lib)) + 1
num_LIBs_RG = num_LIBs_RG + 1
End If

Exit Sub

TRATAR: Errores.Label8 = "Error de tipos"

End Sub

bien, sino te gusta esta respuesta antes puedes hacer esto asi
(segunda opcion)

dentro de donde quiera que llames al procedimiento guardar

Public sub procedimientoquellama()

On error Resume Goto

guardarLIB_RG("string", "string" )

Exit Sub

TRATAR: Errores.Label8 = "Error de tipos"

End sub

si te fijas bien el error lo estoy tratando desde la funcion o procedimeinto que llama y no en la funcion o procedmiento

si prefieres puedes utilizar otro tipo de controlar errores como lo que sigue

Private Sub guardarLIB_RG(ByRef lib As String, ByRef destino As Variant)

On Error Resume Next

If (CInt(lib) < 99) Then
LIBs_RG(CInt(lib)) = LIBs_RG(CInt(lib)) + 1
num_LIBs_RG = num_LIBs_RG + 1
End If

Exit Sub

TRATAR: Errores.Label8 = "Error de tipos"

End Sub

si esta tercera opcion que te muestro no impide el error de tipos y hace que tu compilador de visual basic te muestre las opciones de depura entonces quiere decir que si el error se produce desde el momento en que se llama al procedimeinto guardar asi que puedes utilizar cualquiera de las dos primeras opciones que te muestro bien espero que te sirva cuidate mucho

    Pregunta:  48415 - ERROR KARNEL32.DLL EN ARCHIVOS GIF,JPG
Autor:  Jose Oliveras
Todas las aplicaciones creadas con el lenguage Visual Basic generan un error de volcado de la pila en el modulo KARNEL32.dll cuando intentan cargar un archivo *.GIF o *JPG o *.JPEG. Seguramente hay una libreria que no funciona correctamente. AYUDA URGENTE. Con los archivos *.BMP no hay problemas

Muchas gracias
  Respuesta:  Josep Oliveras
El problema era un mal funcionamiento de la libreria:
C:\windows\system\Asycfilt.dll

    Pregunta:  48418 - DE ACCESS A ORACLE
Autor:  Jorge de Andrés
Hola

Tengo una consultilla

Tengo una serie de aplicaciones en mi empresa hechas en Visual Basic sobre access y utilizamos DAO para hacer esta conexión.

Nos estamos planteando cambiar a ORACLE, pero me gustaría saber como me influira , en cuanto a lineas de codigo a tocar, este cambio. Es decir, si sera mucho jaleo y habra que cambiar muchas cosas para en vez de conectar a Access conectar a ORACLE usando DAO

Gracias
  Respuesta:  Eider Mauricio Aristizabal Erazo
No serian muchas las lineas a tocar,
y recomendable sería cambiar a la tecnología ADO

    Pregunta:  48421 - MANIPULACION DEL OUTLOOK
Autor:  nancy gonzalez
hay forma de hacer en una regla de outlook que baje a discos archivos atachados???
o de otra manera desde visual... bajar hacer una consulta al outlook y bajar los archivos
  Respuesta:  Jose Luis Hernandez Meza
Hola Nancy.

Si, si lo hay, tengo un código en Visual Basic para Outlook 2003, para bajar archivos que están en Attachment y los baja a una cierta carpeta en especifico en C:

Modificando la variable xFile, puedes determinar el tipo de archivo a descargar del outlook.

Visualizar el código

Saludos.

    Pregunta:  48451 - OBTENER NUMERO DE TARJETA ETHERNET O DE CUALQUIER INTEGRADO
Autor:  jorge nicora
agradecería si pueden indicar las pautas de como se puede escribir código en visual basic el cuál retorne el número de por ejemplo una tarjeta ethernet o de cualquier otra tarjeta o chip (sonido, video, etc.).
No se si es a través de alguna api de windows o de algún código escrito en algún lenguaje de bajo nivel.

Agradezco vuestra colaboración.
  Respuesta:  uribana break
ve si esto te sirve

Public Const NCBASTAT As Long = &H33
Public Const NCBNAMSZ As Long = 16
Public Const HEAP_ZERO_MEMORY As Long = &H8
Public Const HEAP_GENERATE_EXCEPTIONS As Long = &H4
Public Const NCBRESET As Long = &H32
Public Type NET_CONTROL_BLOCK 'NCB
ncb_command As Byte
ncb_retcode As Byte
ncb_lsn As Byte
ncb_num As Byte
ncb_buffer As Long
ncb_length As Integer
ncb_callname As String * NCBNAMSZ
ncb_name As String * NCBNAMSZ
ncb_rto As Byte
ncb_sto As Byte
ncb_post As Long
ncb_lana_num As Byte
ncb_cmd_cplt As Byte
ncb_reserve(9) As Byte ' Reserved, must be 0
ncb_event As Long
End Type
Public Type ADAPTER_STATUS
adapter_address(5) As Byte
rev_major As Byte
reserved0 As Byte
adapter_type As Byte
rev_minor As Byte
duration As Integer
frmr_recv As Integer
frmr_xmit As Integer
iframe_recv_err As Integer
xmit_aborts As Integer
xmit_success As Long
recv_success As Long
iframe_xmit_err As Integer
recv_buff_unavail As Integer
t1_timeouts As Integer
ti_timeouts As Integer
Reserved1 As Long
free_ncbs As Integer
max_cfg_ncbs As Integer
max_ncbs As Integer
xmit_buf_unavail As Integer
max_dgram_size As Integer
pending_sess As Integer
max_cfg_sess As Integer
max_sess As Integer
max_sess_pkt_size As Integer
name_count As Integer
End Type
Public Type NAME_BUFFER
name As String * NCBNAMSZ
name_num As Integer
name_flags As Integer
End Type
Public Type ASTAT
adapt As ADAPTER_STATUS
NameBuff(30) As NAME_BUFFER
End Type
Public Declare Function Netbios Lib "netapi32.dll" (pncb As NET_CONTROL_BLOCK) As Byte
Public Declare Sub CopyMemory Lib "Kernel32" Alias "RtlMoveMemory" (hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)
Public Declare Function GetProcessHeap Lib "Kernel32" () As Long
Public Declare Function HeapAlloc Lib "Kernel32" (ByVal hHeap As Long, ByVal dwFlags As Long, ByVal dwBytes As Long) As Long
Public Declare Function HeapFree Lib "Kernel32" (ByVal hHeap As Long, ByVal dwFlags As Long, lpMem As Any) As Long

'ESTA FUNCION LA MUESTRA
Function GetMACAddress() As String

Dim tmp As String
Dim pASTAT As Long
Dim NCB As NET_CONTROL_BLOCK
Dim AST As ASTAT

NCB.ncb_command = NCBRESET
Call Netbios(NCB)

NCB.ncb_callname = "* "
NCB.ncb_command = NCBASTAT

NCB.ncb_lana_num = 0
NCB.ncb_length = Len(AST)
pASTAT = HeapAlloc(GetProcessHeap(), HEAP_GENERATE_EXCEPTIONS Or HEAP_ZERO_MEMORY, NCB.ncb_length)
If pASTAT = 0 Then

Exit Function
End If
NCB.ncb_buffer = pASTAT
Call Netbios(NCB)
CopyMemory AST, NCB.ncb_buffer, Len(AST)
tmp = Format$(Hex(AST.adapt.adapter_address(0)), "00") & " " & Format$(Hex(AST.adapt.adapter_address(1)), "00") & " " & Format$(Hex(AST.adapt.adapter_address(2)), "00") & " " & Format$(Hex(AST.adapt.adapter_address(3)), "00") & " " & Format$(Hex(AST.adapt.adapter_address(4)), "00") & " " & Format$(Hex(AST.adapt.adapter_address(5)), "00")
HeapFree GetProcessHeap(), 0, pASTAT
GetMACAddress = tmp
End Function

    Pregunta:  48481 - API HISTORIAL IEXPLORER??
Autor:  neco
Alguien conoce la api para borrar el historial del iexplorer.

Muchas gracias gente.
  Respuesta:  Boluarte Bedoya
No conosco alguna API pero haber dale una vista a:
C:\Documents and Settings\[Usuario]\Configuración local\Historial

cambia: [Usuario] por tu nombre usuario actual

    Pregunta:  48490 - RUEDA DEL RATóN
Autor:  Agustín Dávila
Hola, mi pregunta es si alguien conoce alguna API que responda a la rueda del ratón para que me pueda hacer el scroll de un picturebox, como cualquier control de windows existente. Muchas gracias de antemano.
  Respuesta:  Gabriel Memmel
Hola, la solución más práctica y eficiente que encontré es utilizando DirectX, aquí te pongo un ejemplo sencillo, tenés que habilitar en las referencias la librería de DirectX, yo utilizo el 8:

'DirectX para la rueda del ratón ;-)
Dim DX As New DirectX8
Dim DI As DirectInput8
Dim Mouse As DirectInputDevice8
Dim MouseState As DIMOUSESTATE
Private Declare Function GetFocus Lib "user32" () As Long

Private Function IniciarDX() As Boolean
On Error Resume Next
Set DI = DX.DirectInputCreate()
' Check to see if the pointer is valid
If DI Is Nothing Then IniciarDX = False: Exit Function
' Get a pointer to keyboard and mouse device objects
Set Mouse = DI.CreateDevice("guid_SysMouse")
' Check to see if pointers are valid
If Mouse Is Nothing Then IniciarDX = False: Exit Function
' Set the data formats to the commmonly used keyboard and mouse
Mouse.SetCommonDataFormat DIFORMAT_MOUSE
' Set cooperative level, this tells DI how much control we need
Mouse.SetCooperativeLevel hWnd, DISCL_NONEXCLUSIVE Or DISCL_BACKGROUND
' Now we are ready to aquire (erm, get) our input devices
Mouse.Acquire
IniciarDX = True
End Function

Private Sub Form_Load()
On Error Resume Next
' En caso de que DirectX inicie correctamente, habilita el Timer que "observará" al ratón
If IniciarDX Then TimerMouse.Enabled = True
End Sub

Private Sub TimerMouse_Timer()
On Error Resume Next
Dim hW As Long, Rueda As Integer
' Obtiene el índice del control que tiene el foco
hW = GetFocus
' Obtiene los valores actuales del ratón
Mouse.GetDeviceStateMouse MouseState
Rueda = MouseState.lZ / 120
' Llama a la sub con los parámetros necesarios
' Esta parte puede ser obviada y ser insertado el código aquí mismo
MouseScroll hW, Rueda
End Sub

Private Sub MouseScroll(hWnd as Long, Scroll as Integer)
On Error Resume Next
' Por comodidad se creó esta sub, pero puede evitarse y escribir el código directamente en el Timer
If hWnd = Objeto.hWnd Then
' Se verifica si el Objeto el cual se desea controlar está teniendo el foco en el instante
' Sentencias
' .
' .
End If
End Sub

Private Sub Form_Unload(Cancel As Integer)
On Error Resume Next
' Es muy importante destruir los objetos DirectX creados para liberar los recursos al cerrar la aplicación
' para esto debe evitarse usar el comando "End" en cualquier parte y siempre cerrar descargando "Unload" el Formulario
Set Mouse = Nothing
Set DI = Nothing
End
End Sub

Espero les sirva a muchos ya que es algo bastante útil y buscado.

    Pregunta:  48524 - MSCOMM - PROBLEMAS DE COMUNICACIóN POR EL PUERTO SERIE
Autor:  Emilio Dubois
El cliente quiere que el mismo sistema funcione para tres tipos de balanzas electronicas que se comunican mediante el puerto serie. Dos son iguales, trabajan a 1200 baudios, 8 bits de datos, sin paridad, y uno de parada. El tema es que la tercera balanza, trabaja a 9600. Probe, y pareciera no haber problemas en cambiar la velocidad en tiempo de ejecucion y comunicacion activa, aunque me gustaria que alguien mas me lo confirme.
Tengo otro problema tambien, en los datos de la balanza, dice que trabaja a 9600 baudios, 8 bits, 1 de parada, sin paridad, es decir, lo unico q cambiaria es la velocidad. Pero resulta ser que cuando seteo la velocidad asi, mi aplicacion en VB, levanta del buffer de a 8 caracteres, aun con la propiedad ".RThreshold = 1". Lo que hice para solucionar esto, es usar ".InputLen = 1". No entiendo porque la aplciacion se comporta de esta forma, ya que segun entendi, seteando ".RThreshold = 1" le digo que por cada caracter que llegue, dispare el "oncomm()" y ahi leo el buffer, y tambien tengo entendido que cuando lo leo, este se vacia...
  Respuesta:  Guillermo Beyer
Estimado.
Referente a la primera parte de tu enunciado no hay ningún problema en setear distintas configuraciones para el puerto serie en tiempo de ejecución pero siempre acordarse de cerrar el puerto antes y a veces es necesario meter una rutina de retardo con Do Events incorporado en la misma otras veces no es necesario esto tiene que ver con la velocidad de la pc, pero quizás antes que nada fijate en el manual de la balanza si no hay la posibilidad de configurar la misma configuración que las restantes y asi evitar tiempos de reconfiguración en tiempos de ejecución, derespecto al segundo estamos tambien con el tema de la velocidad propia de la pc con respecto al caracter leido a pesar de tu configuración Windows es tan lerdo que cuando el On Comm te avisda de un caracter recibido el bufer ya se lleno con todos los restantes enviados por la balanza, la única solución es programar una rutina dentro del evento On Comm que al dispararse con el primer caracter recibido vaya cargando de a uno el caracter del bufer acumulandolos en una misma variable algo asi como.
While MsCounter<> 0
Recepción = Recepción + InputComm
Whend
Esto es a groso modo una forma de muchas otras.
Espero te sirva de ayuda.Cualquier duda escribeme ([email protected])

    Pregunta:  48598 - QUICKTIME DESDE VISUAL BASIC
Autor:  Ruben Jorge Blanco
Mi pregunta se refiere a como ejecutar un video quicktime desde una aplicacion en visual basic. Por ejemplo un archivo .mov Agradecería mucho me orienten o envíen un ejemplo de como lograrlo ya que mi experiencia en V.B es muy poca.
  Respuesta:  Hector Infante
Hola,

Para este problema puedes utilizar el control MMC (Multi Media Control) de Windows que tiene la característica reproducir cualquier tipo de formato Multimedia, es necesario que tengas instalado el Codex respectivo, para cualquier video se reproduce en una ventana independiente, pero mediante la propiedad hwnd puedes transferir a un frame o picture control u otra ventana preestablecida la ejecución del mismo.

Si requieres un ejemplo escríbeme.

Saludos

    Pregunta:  48609 - PROBLEMAS AL INSTALAR EMPAQUETADO EN VISUAL BASIC 6.0
Autor:  Manuel Antonio Moncada Uriarte
Saludos:

Mi pregunta es, yo hice un sistema en Visual Basic 6.0 en un ordenador de que tenia Windows XP y office 2003.
Al momento de empaquetar no me mando ningun error, pero a las maquinas que se les va instalar una tiene Windows xp con office 2000 y la otra tiene windows 95 con office 97, pimero probe en la que tiene XP pero cuando le doy click en la opción para instalar el sistema me manda a reiniciar la maquina supuestamente para actualizar componentes, bueno le doy aceptar y reinicia la maquina, luego le doy nuevamente click a instalar el sistema y nuevamente me manda a reiniciar para otra vez actualizar los componentes pasos que se convierten en un ciclo.

Y si no es ese problema me aparece otro la probe en otra computadora pero esta parece que esta acutalizada y le doy click a instalar sistema entonces comienza el proceso de instalación y me manda dos errores, uno que no puede copiar un archivo de System32. y al final no pues actualizar otros archivos le doy omitir y se instala la aplicación pero cuando quiero ver reportes me manda ERROR los reportes los hice en Crystal Report 9.0
  Respuesta:  FABIO ADOLFO MALDONADO BECERRA
Con respecto a lo del empaquetado, él crea un archivo setup.lst, con el bloc de notas lo abres y comienzas a borarle p.ej la última línea, lo guardas y corres la instalación, si no se arregla el problema, lo abres nuevamente y borras la antepenúltima línea y así sucesivamente hasta que te deje correr la instalación, esto suele suceder por las versiones de internet explorer de la máquina en que se generó el instalador y la máquina a donde se quiere instalar.

En cuanto a lo de crystal, no he manejado la versión 9, pero deberías probar instalando crystal en la máquina de destino.

Espero haberte sido de utilidad.

|<  <<  266 267 268 269 270 271 272 273 274 275 276  >>  >|