|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - J.M.Movilla
Páginas: 1 ... 12 13 [14] 15 16 17
326
« en: Lunes 31 de Marzo de 2003, 09:15 »
Amigo José:
Sospecho que el problema por el que no te funciona la ruedecita en un grid no es cuestión de programación en VB; a mí me funciona perfectamente desplazando un FlexGrid sin que yo incluya ninguna línea para que haga scroll. A un compañero le costó mucho conseguirlo, hasta que actualizó el soft del mouse, que es donde radica el problema.
El segundo tema de cambio de ruta al abrir VB no llego a captarlo claramente, pero intuyo que la solución la tienes de esta forma: sitúate en el directorio al que quieres que apunte Visual y desde ese directorio haz doble clic sobre el .vbp o .vbg que quieras ejecutar; VB estará apuntando a ese directorio, pienso yo... Ya me contarás si era ése tu problema.
Saludos
327
« en: Domingo 30 de Marzo de 2003, 12:00 »
Yo utilizo esa rutina para hacer las copias de seguridad, y puedo asegurarte que hasta que no termina el proceso mi teclado y mi mouse están bloqueados... Probablemente sea cosa del Windows 2000, porque en XP va bien.
328
« en: Domingo 30 de Marzo de 2003, 11:53 »
Ruego disculpas por haberme precipitado en mi crítica: Cuando hice la prueba cometí el error de mantener registrada la vieja versión de ActiveZipper.ocx, por lo que los resultados fueron, lógicamente, erróneos por tener el ocx con problemas. La almohada me ha iluminado y esta mañana me he levantado dispuesto a comprobar mi error, y he de rectificar y decir públicamente que esta nueva versión de ActiveZipper FUNCIONA PERFECTAMENTE, recuperando correctamente el fichero comprimido. Unicamente se mantiene el inconveniente de que no es recuperable con WinZip, si bien en otro sentido puede utilizarse como medio de protección... Y también cabe destacar el que un fichero de 30 Mb me lo ha reducido a unos 16 Mb, mientras que WinZip32 me lo deja en 6 Mb, lo cual es bastante significativo. Solicito nuevamente vuestra comprensión, sobre todo a ti, HurryCrack.
329
« en: Domingo 30 de Marzo de 2003, 00:41 »
Lamento daros una mala noticia: hace tiempo que hice pruebas con este ocx. Efectivamente su rapidez deslumbra, pero además de generar un fichero .zip que no interpreta WinZip, el propio ActiveZipper lo descomprime MAL!!! No sé si ocurre sólo en ficheros largos o si existe otro motivo por el que da fallos: he repetido las pruebas, por si se tratase de una versión corregida, pero me ha vuelto a fallar, con un fichero .mdb; una vez descomprimido Access no lo reconoce. Espero no tomes mi respuesta como una "revancha" o algo parecido. Ojalá me hubiera servido...
330
« en: Sábado 29 de Marzo de 2003, 17:00 »
¿Seguro que tu método es más rápido que el que te envié yo ayer? Me resulta difícil de creer, pero como todo es posible, te agradecería me lo facilitases
331
« en: Sábado 29 de Marzo de 2003, 10:30 »
Supongo que lo que buscas es bloquear el input de datos MIENTRAS EJECUTAS UN PROCESO, y que cuando éste termine se desbloqueen el teclado y el mouse automáticamente... Prueba esto (yo lo uso mientras ejecuto las copias de seguridad, con éxito garantizado...)
' ------------ ' EN UN MODULO ' ------------
' Para desactivar el teclado mientras se ejecuta un proceso externo Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessID As Long) As Long Public Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Const STILL_ACTIVE = &H103 Const PROCESS_QUERY_INFORMATION = &H400
Public Sub ExecCmdNoFocus(ByVal CmdLine As String) 'Esperar a que un proceso termine, 'La ventana se mostrará minimizada sin foco Dim hProcess As Long Dim RetVal As Long 'The next line launches CmdLine as icon, 'captures process ID hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, Shell(CmdLine, vbMinimizedNoFocus)) Do 'Get the status of the process GetExitCodeProcess hProcess, RetVal 'Sleep command recommended as well 'as DoEvents DoEvents Sleep 100 'Loop while the process is active Loop While RetVal = STILL_ACTIVE End Sub
' ------- ' LLAMADA ' -------
Private Sub Rutina... ' ' ' ExecCmdNoFocus (Proceso a ejecutar...) ' ------------------------------------ ' ' End Sub
Saludos y suerte, a ver si he dado con tus necesidades...
332
« en: Viernes 28 de Marzo de 2003, 17:43 »
Supongo te sirva esto. Yo lo estoy usando para hacer las copias de seguridad en todas mis aplicaciones y me va de coña...
Te agradecería también tu código para envío con WinSock.
Saludos
333
« en: Miércoles 26 de Marzo de 2003, 00:58 »
Hola, Jose:
Yo también trabajo específicamente con programas médicos, y no me preocupa el que se actualicen automáticamente las consultas. Porque siempre tendrás una posibilidad de información errónea, o mejor dicho una información incompleta, si realizas la consulta instantes antes de que se introduzca la información... Y eso no podrás evitarlo nunca.
El caso que me preocupa un poco es cuando se confecciona el informe de alta hospitalaria, que toma automáticamente toda la información de antecedentes, de pruebas complementarias realizadas, de datos de procedimientos diagnósticos y quirúrgicos realizados, y del tratamiento instaurado, así como de los consejos para próxima revisión; ese informe se confecciona en Word, a base de cumplimentar automáticamente unas "macros" que toman los datos de los respectivos campos de la database. Si en ese momento un médico decide realizar una modificación, puede afectarse una "macro" y resultar un informe incorrecto; pero realmente es de su responsabilidad el revisar el informe antes de firmarlo, sobre todo si sabe que él mismo ha hecho modificaciones de última hora.
En todo caso tienes la posibilidad de refrescar el flexgrid cada X segundos, mediante una rutina con Timer1.
Saludos
334
« en: Miércoles 26 de Marzo de 2003, 00:35 »
Pues resulta que DAO es un tipo de conexión que no se ha actualizado para que maneje ficheros de Access 2000. Como te dice José D, tendrás que convertir la base de datos a la versión anterior (Access 97), o ser valiente y pasar a utilizar ADO..., que en cuanto le cojas el tranquillo verás cómo te compensa.
Saludos
335
« en: Miércoles 26 de Marzo de 2003, 00:22 »
Perdona, pero no me siento capacitado para darte solución a tu problema: lo que yo te apuntaba se refería al refresco del recordset, que puede dar problemas si no liberas la memoria; pero este tipo de instrucciones respecto a imágenes no las he usado nunca e ignoro por qué no funcionan...
Que se te solucione el tema pronto. Saludos
336
« en: Lunes 24 de Marzo de 2003, 22:48 »
Estupenda la solución de becker24. Sólo que se le ha olvidado advertirte que esas funciones has de declararlas como públicas:
Public Function F1...
Saludos
337
« en: Lunes 24 de Marzo de 2003, 16:43 »
Ojalá que todos tus problemas sean como éste:
CmdControl.Visible = False
(CmdControl sería el nombre de TU control)
Si pones CmdControl.Enable = False, le dejas visible, pero difuminado e inactivo.
Hasta otra, saludos
338
« en: Lunes 24 de Marzo de 2003, 16:37 »
Usa este código:
Dim xEa As Excel.Application
' Ignorar bloqueo por error durante la apertura de Excel On Error Resume Next Set xEa = GetObject(, "Excel.Application") ' Si no está Excel abierto, se produce un error If Err.Number = 0 Then msgbox("Se está ejecutando Excel") ' Ciérralo o toma la decisión precisa else ' Si necesitas abrirlo: Set xEa = CreateObject("Excel.Application") End If
' Borrar el objeto Err, por si se produjo error. Err.Clear ' Reanudar el procesamiento normal de errores. On Error GoTo 0
¿Te sirvió? Me alegro.
339
« en: Lunes 24 de Marzo de 2003, 16:23 »
Te adjunto un código que te explica perfectamente cómo solucionarlo. Saludos
340
« en: Domingo 23 de Marzo de 2003, 22:11 »
Mira, qué a punto has llegado. Acabo de encontrar la solución a tu problema, aunque tuviera en principio otro destino... Lógicamente deberás sustituir el ciclo con el que se alimenta el listbox, poniendo los campos de tu tabla y hacer un .movenext hasta el .eof; pero eso no te va a dar molestias...
Bájate este código y echa un trago a mi salud...
Un abrazo
341
« en: Sábado 22 de Marzo de 2003, 21:43 »
Hola, Miguel, de nuevo:
Me he encontrado esta utilidad en Canal #Visual Basic, y me he acordado de tí... Creo que puede ser la solución a tu problema, presentando los dos campos en dos columnas con un separador...
Hasta otra.
342
« en: Sábado 22 de Marzo de 2003, 10:40 »
Para mí que tienes mal diseñado el dataReport
Y si no proporcionas ese diseño va a ser imposible darte ayuda ni solución.
Saludos
343
« en: Sábado 22 de Marzo de 2003, 10:31 »
Hola Lugh:
El recordset no pide parámetros: tú se los proporcionas...
El parámetro lo pides mediante un textbox, por ejemplo
Label1.caption = "Introduzca el precio límite:" y a su lado insertas el textbox para introducir ese valor.
Luego confeccionas la SQL: Set rs = "Select * From Tabla1 Where precio > '" & Text1.text & "'" rs.Requery
Y ya tienes un recordset con los registros en los que el precio sea superior al valor introducido en el textbox.
Saludos
344
« en: Viernes 21 de Marzo de 2003, 00:56 »
Perdona. He visto antes el mensaje "no caché" y te he respondido en él. Por cierto que tendrás que disculparme por pensar que seguías usando un mensaje nuevo cada vez...
345
« en: Viernes 21 de Marzo de 2003, 00:53 »
Cuando tú expones el objeto Data Report, en las Herramientas tienes un control con la sigma mayúscula (símbolo de Sumatoria): ése es el RptFunction. Pínchale y expándele como haces con un combobox, y en sus propiedades encontrarás entre otras las de DataField y FunctionType...
Cuando veas las posibilidades que tienes de usar funciones estadísticas, te animarás a utilizar el Data Report para cosas que ni te imaginabas...
Y permíteme que te repita que hagas las ampliaciones de tus temas usando el mismo mensaje, porque si cada vez creas un mensaje nuevo parece que es que el tema anterior ya quedó resuelto... Yo he abierto este nuevo mensaje pensando que tenías otro problema, y resulta que me lo diriges a mí, sin que yo tenga por qué sospecharlo... Vamos, que te expones a que nadie te conteste.
Un abrazo para que salgas adelante.
346
« en: Jueves 20 de Marzo de 2003, 00:37 »
Pon este código y verás cómo en cuanto cambies la unidad de disco se te actualiza la lista de directorios:
Private Sub Drive1_Change() On Error GoTo DriverErr Dir1 = Drive1 Exit Sub DriverErr: Beep x = MsgBox("Error: Unidad no preparada", 48) Drive1 = "c:" End Sub
(Se entiende que Dir1 es el nombre del DirListBox...)
Saludos.
347
« en: Jueves 20 de Marzo de 2003, 00:23 »
Prohibido deprimirse...
Quita ese campo de la SQL, que creo que no es "soportable", y en el diseño del report (Dsr) añades una rptFuncion, la colocas donde te interese (donde ponías el campo problemático), le das el formato que quieras y en sus propiedades defines DataField = minutos_trab (mejor, pinchas en la flecha de la derecha para seleccionar el campo) y en FunctionType seleccionas 0-rptFuncSum.
Si no te funciona así es que tienes otro error en otro campo...
Y ¡¡¡arriba los corazones!!! que a Visual hay que dominarlo sin permitir que él nos coma el coco.
348
« en: Miércoles 19 de Marzo de 2003, 19:27 »
Pues algo así:
Define una variable (cPathDoc) con la ruta del directorio en el que tienes tus documentos .txt y otra (cPathFoto) con la ruta de donde están las fotos .jpg
Abre un objeto FileListBox al que llamas SelFile (por ejemplo)
Y usa el siguiente código:
cPathDoc = "C:Mi_directorio_de_txt" cPathFoto = "C:Mi_directorio_de_jpg"
SelFile.Path = cPathDoc SelFile.Refresh
For n = 0 To SelFile.ListCount - 1 cFichero = SelFile.List(n) cFichero = cPathFoto & Left( cFichero, Len(cFichero) - 4) & ".jpg" if Dir( cFichero) = "" then msgbox("No existe esta Foto...") end if Next
349
« en: Miércoles 19 de Marzo de 2003, 18:27 »
Tienes muchas formas de hacer un reporte, usando por ejemplo la función Shell para emplear programas externos; pero hay dos formas muy ágiles, sencillas y útiles: Word y Excel.
Si no tienes que hacer uso de fórmulas te puede servir Word, pero yo te aconsejo que te metas directamente con Excel, con lo que podrás presentar hojas con todo lujo de detalle y metiéndole cuantas fórmulas precises para que trabaje él...
Bueno, esto siempre que tengas problemas con Crystal, que tampoco veo por qué ha de crearte conflictos.
Y UN CONSEJO, CHINITA: No abras 3 mensajes para un mismo tema, que así es muy difícil seguirte: ve añadiendo "RESPUESTAS" dentro del mismo mensaje. Un abrazo.
350
« en: Miércoles 19 de Marzo de 2003, 18:13 »
A mí me parece que la instrucción es perfecta. Sospecho que lo que te ocurre es que estás usando caracteres true type de espacios compensados, por lo que la segunda columna baila de acuerdo con la anchura de los caracteres del nombre de la empresa: veamos un ejemplo de dos empresas con un nombre de 20 caracteres, por lo que se insertarán 15 espacios (para que se aprecie bien, pongo puntos en lugar de espacios):
iiiiiiiiiiiiiiiiiiii...............Juan mmmmmmmmmmmmmmmmmmmm...............Luis
En ambos casos se ha construido la fila de acuerdo a tu instrucción, y ya ves el resultado.
¿No será eso lo que te ocurre?
Saludos
Páginas: 1 ... 12 13 [14] 15 16 17
|
|
|