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 >> >| |