|
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 ... 11 12 [13] 14 15 ... 17
301
« en: Lunes 7 de Abril de 2003, 20:12 »
Para filtrar los registros que cumplan con una condición usa en el OpenRecordset o en el RecordSource una SQL del siguiente tipo: "SELECT * FROM TablaName WHERE CampoConcepto LIKE '*" & PalabraFiltro & "*' ORDER BY CampoIndice"
Si quisieras presentar sólo los artículos que EMPEZASEN con esa palabra, no pondrías el asterisco por delante de la PalabraFiltro...
Saludos y suerte
302
« en: Lunes 7 de Abril de 2003, 11:09 »
No me gustaba que las fechas tuvieran que salir en formato americano para cumplir las exigencias del ordenamiento...
Dándole vueltas se me ocurrió la solución: ¡Que el ListBox no lo ordene... dáselas ya ordenadas...!
Espero que también a tí te guste más esta segunda versión
Saludos
303
« en: Domingo 6 de Abril de 2003, 22:45 »
Como te dice José D, ya no puede encontrarse ese fichero... Si no tienes una cuenta con Lycos, ábrela. Es gratis. Y me haces el favor enviarme el ocx a [email:21bkozeh]name@domain.com[/email:21bkozeh]
Gracias
304
« en: Domingo 6 de Abril de 2003, 21:19 »
Estaba deseando probar tu MSC, pero no he conseguido ejecutarlo. Me da error porque no encuentra XPOCX.ocx, y no sé cómo registrarlo. He ejecutado previamente Proyecto1, porque veo que es necesario su .XpBs, pero ni por ésas...
Echame una mano, que ahora te necesito yo a tí.
Saludos nuevamente
305
« en: Domingo 6 de Abril de 2003, 20:33 »
Yo creo que las instrucciones te las di más claras que un huevo sin yema... Pero por ser vos quien sois, que te desvives por los demás, bien mereces que se te conceda un caprichito...
Espero dejarte satisfecho, y con un fuerte abrazo
Aviso a navegantes... Este fichero ha sido sustituido por otra versión mejorada, dos notas más abajo en este mismo mensaje !!!
306
« en: Domingo 6 de Abril de 2003, 12:04 »
307
« en: Domingo 6 de Abril de 2003, 11:57 »
Hola Gerard:
Al tiempo de felicitarte por tu MessengerSoloCodigo, que te ha quitado, seguro, horas de sueño y de diversión, paso a exponerte cómo resolvería yo tu cuestión:
Genera DOS ListBox iguales y SUPERPUESTOS, uno con los datos ordenados alfabéticamente y el otro por fechas.
Inicalizas con CmdAlf_Click
Y los CommandButton llevarán
Private Sub CmdAlf() List1.Visible = True List2.Visible = False End Sub
Private Sub CmdFec() List1.Visible = False List2.Visible = True End Sub
Luego podrás mejorarlo haciendo que el puntero se sitúe en cada listBox donde te interese (por ejemplo con una variable que vaya cambiando Nombre + Fecha a Fecha + Nombre, según el caso, y hacer que List1.Text (o List2.Text) = EstaVariable), y que de esta forma te muestre los mismos datos cuando alternes el tipo de orden.
Saludos
308
« en: Sábado 5 de Abril de 2003, 23:40 »
Este proyecto contiene unas utilidades de configuración que te gustarán, a juzgar por lo que tú buscas.
Saludos
309
« en: Sábado 5 de Abril de 2003, 19:20 »
Sonnya, maja...
Si te hubieras dado una vuelta por el foro, habrías encontrado la solución; porque no hace mucho envié un fichero referente a esto mismo.
En cualquier caso, para evitar que te pierdas en la búsqueda, te lo adjunto de nuevo, por aquello de tus besos...
Te devuelvo uno muy cariñoso
310
« en: Sábado 5 de Abril de 2003, 00:56 »
Es que aquí en España se dice (a lo mejor también por ahí usáis esta jerga...) "Nunca te acostarás sin saber una cosa más..."
Un saludo
311
« en: Sábado 5 de Abril de 2003, 00:52 »
A ver si te lo soluciono con este código
Saludos y suerte
312
« en: Sábado 5 de Abril de 2003, 00:00 »
Vamos a ver si este programita que acabo de hacer específicamente para tí te produce tanta satisfacción como la que me ha dado a mí al conseguirlo...
Insisto en algo que aclaro en el fichero: tienes que cuidar de definir adecuadamente el "separador" que en tu fichero se utilice.
Saludos y suerte
313
« en: Viernes 4 de Abril de 2003, 20:07 »
También puedes poner directamente
texto = """Ayuda"""
(con tres dobles comillas en cada grupo: una para que delimite la String, y dos juntas para que se traduzcan por comillas dentro de la String)
Saludos
314
« en: Viernes 4 de Abril de 2003, 11:14 »
Vamos a ver si consigo darte una solución a tu problema (si me deja Internet, porque ayer en dos ocasiones tuve esta respuesta escrita y me quedé con dos palmos de narices ante el letrero de "Página no responde"...)
' ---------------------------------------------
En tu documento de Word pones
.... el nombre es : @TBOX01@ para efectos....
Esto te va a permitir luego sustituir esa "macro" @TBOX01@ por el contenido de un textbox o de un campo de tu base de datos...
Igualmente podrás poner otras "macros" (@TBOX02@, @TBOX03@, etc.) y hacer automáticamente las "macrosustituciones" correspondientes.
LUEGO GRABAS ESE DOCUMENTO EN FORMATO .RTF A partir de ahora tu documento se llamará "Documento.rtf", que lo va a tratar Word de forma más ágil que un .doc
' ---------------------------------------------
En tu aplicación insertas este código, para ejecutarlo por ejemplo cuando pulses un CommandButton que se llame CmdImprimirWord
Dim w As New Word.Application Dim cFich As String, wFich As String
Private Sub CmdImprimirWord() cFich = "NOMBRE DE TU PLANTILLA DE WORD.rtf" wFich = "Temporal.rtf"
' Copiamos tu plantilla en otro Fichero para el Informe y no machacar la plantilla FileCopy cFich, wFich
CambiaMacros
if Dir( cFich) <> "" then ' No hubo error al hacer las "macrosustituciones" w.Documents.Open (wFich) w.Caption = "MS-Word - Creando informe" w.Visible = True w.WindowState = wdWindowStateMaximize Set w = Nothing ' Borro el fichero temporal de informe Kill(wFich) End If End Sub
Private Function CambiaMacros() Dim nHandle% Dim strBuffer As String Dim n As Long Dim strText As String Dim strPrem As String Dim strPost As String Dim cMacro As String Dim cStrB As String Dim cTit As String Dim lFallo As Boolean strText = "" nHandle% = FreeFile Open wFich For Input As #nHandle% Do While Not EOF(nHandle%) Line Input #nHandle%, strBuffer strText = strText & strBuffer & vbCrLf Loop Close #nHandle% cStrB = "@" n = InStr(1, strText, cStrB)
do while n <> 0 If Mid(strText, n + 7, 1) = cStrB Then cTit = "" cMacro = UCase(Mid(strText, n, 8)) If cMacro = "@TBOX01@" Then ' Para sustituir por el primer textbox cTit = text1.text ' Aunque también podrías sustituirlo por un campo de una tabla: cTit = Db.Tab!NombreCliente... ElseIf cMacro = "@TBOX02@" Then ' Para sustituir por el segundo textbox cTit = text2.text ' ' Cuantos casos precises incustar en la plantilla '
Else ' Por si se ha incluido una "macro" mal redactada MsgBox("Revise la Plantilla :" & Chr(10) & _ "Ha introducido como ""macro"" la palabra " & cMacro & Chr(10) & _ "y no ha diseñado la SQL de conversión para tal ""macro"".", vbCritical) lFallo = True Exit Do End If Else n = InStr(n + 1, strText, cStrB) End If
strPost = Mid(strText, n + 8) strPrem = Left(strText, n - 1) If cTit <> "" Then strText = strPrem & cTit & strPost ' Busca si la plantilla tiene más "macros" n = InStr(n + 9, strText, cStrB) Else strText = strPrem & strPost n = InStr(n + 1, strText, cStrB) End If
If Len(strPost) < 8 Then Exit Do Loop If lFallo Then ' Hubo error en una "macro" Kill(wFich) wFich = "" exit Function End If nHandle% = FreeFile Open wFich For Output As #nHandle% Print #nHandle%, strText Close #nHandle% CmdSust.Visible = False End Function
' --------------------------------------
Espero te vaya bonito...
Saludos y suerte
315
« en: Viernes 4 de Abril de 2003, 01:56 »
Esta cuestión es la misma que presentaste en el mensaje que acabo de resolverte en ORDENAR FICHERO. Evita duplicar los mensajes cuando se trata del mismo tema, porque así no puede hacerse el seguimiento adecuado; en el mismo mensaje puedes añadir cuantas addendas explicativas precises. De todas formas, me ha gustado que nos recuerdes estos métodos que yo practicaba allá por el año 73-74... y que ya ha llovido... Pero eso se hacía con el Basic de MS-DOS... If x > z (then) y = x x = z z = y endif ¡¡¡qué tiempos aquellos...!!!
A ver si con el método que te indico en tu primigenio mensaje consigues la clasificación en 3-4 segundos en lugar de 3-4 horas como te llevaría el método de burbuja.
Saludos y suerte
316
« en: Viernes 4 de Abril de 2003, 01:42 »
Cada vez que generes un datareport termina con su datareport.close y con set datareport = nothing, porque en otro caso te quedan los temporales en disco duro y en memoria...
Saludos y suerte
317
« en: Viernes 4 de Abril de 2003, 01:30 »
Aun cuando hablas de tener que ordenar 3000 registros en un fichero.txt, supongo que quieras decir que tienes que ordenar un fichero.txt que contiene 3000 registros.
Sigue estos pasos: Ejecuta Access, con opción de Asistentes... Elije Base de Datos. Pincha en Insertar tabla. Luego en Importar tabla. Selecciona tu fichero.txt y sigue las instrucciones de Access. Cuando tengas el fichero entras a cambiar sus propiedades y le dices que el campo generado está indexado Con duplicados. Pincha en la cabecera de la columna e imprímelo...
Saludos y suerte
318
« en: Jueves 3 de Abril de 2003, 19:17 »
No creas que con clone te vas a haces un recordset "Dolly" en otro formulario... (Acepta el mal chiste...)
Para manejar un ADO que ya tienes definido en Form1, desde cualquier otro formulario puedes aceder a él exactamente igual que si estuvieras en Form1, pero iniciando la línea con el formulario donde fue creado; es decir, pones
Form1.ADODB..... con tal de que no lo hayas cerrado todavía, claro está.
También puedes crear un nuevo recordset, "clonado" mediante
Dim ADODB_Rec2 As Recordset Set ADODB_Rec2 = Form1.ADODB.Recordset
y luego tratarlo como Variable = ADODB_Rec2.Fields(1)
Saludos y suerte
319
« en: Jueves 3 de Abril de 2003, 19:10 »
Bueno, para que pueda manejarse el botón de maximizar tienes que haber definido en el formulario la propiedad BorderStyle como Sizable; cualquier otro tipo de borde te anula los botones. Pero incluso con el estilo Sizable, puedes inhabilitar el botón mediante la propiedad MaxButton = False.
Y no pienses que tu pregunta es ridícula: todos hemos hecho cosas así muchas veces, incluso cuando creemos que ya hemos alcanzado un nivel superior...
Saludos y suerte
320
« en: Jueves 3 de Abril de 2003, 18:38 »
Mira, Becker24:
El problema que tienes es que Visual a la variable de entorno App.Path la nombra como "C:Directorio de trabajo..."
Cuando tú llamas a la aplicación desde un equipo de cliente en red, va a buscar la base de datos en el disco C:, y claro está, no lo encuentra.
SOLUCION: Crea un fichero (por ejemplo "Setup.mdb") con un campo de Texto de 50 caracteres, al que llamas "Ruta". Este fichero lo copias en el servidor y en todos los clientes, en un directorio que se llame igual que el directorio del servidor en el que tengas el programa.
En el Servidor ese campo contendrá "C:Directorio de trabajo" (es decir, App.Path) y en el resto de equipos, el nombre del servidor y la ruta del programa (por ejemplo, "ServidorDirectorio de trabajo", o "F:Directorio de trabajo", según tengas definido el nombre del servidor).
Al iniciar el programa lees el fichero "C:Directorio del programaSetup.mdb" y defines una variable a la que llamas por ejemplo cMiPath = contenido del campo Ruta del Setup... Ahora, donde ponías App.Path pon cMiPath, y santas pascuas...
Si generas un formulario al que sólo acceda el Administrador, en el cual pueda definir esa variable en cada uno de los clientes, miel sobre hojuelas.
Saludos y suerte
321
« en: Miércoles 2 de Abril de 2003, 20:15 »
Amigo Gerard:
Me gusta la orientación que estás dando al foro, y propongo se te conceda un homenaje virtual, como "Rey del formato Xp" o algo parecido.
Gracias por tus colaboraciones
322
« en: Miércoles 2 de Abril de 2003, 19:54 »
Supongo que hay mil maneras de solucionar esa cuestión; yo te digo cómo lo hago yo, garantizándote que va bien:
Cada usuario tiene un número y una clave de acceso; pues bien, con esa clave yo encripto una cifra, que se corresponde con el nivel de permiso que se le confiere. (Al desencriptar la clave desencriptamos también esa cifra, que la asignamos a una variable pública de nombre "NivelPermiso", pongamos por caso)
Cuando confecciones un formulario puedes poner, por ejemplo, el siguiente código:
if NivelPermiso < 3 then CmdAñadir.Enable = False CmdBorrar.Enable = False etc..... End If
o bien if NivelPermiso = 1 then txtSueldo.Locked = True txtNIF.Locked = True End If si prefieres bloquear algunos campos para ciertos usuarios...
Esto te dará muchas posibilidades de "jugar" con cuantas combinaciones desees.
Incluso puedes bloquear el acceso a tal o cual formulario o subprograma:
If NivelPermiso < 6 Then msgbox("Usted no tiene permiso para realizar esta opción") Else frmXXX.Show vbModal End If
Si eres más ambicioso, desarrolla una tabla en la que indiques esas combinaciones para cada input del programa y cada tipo de Nivel... Pero ten la precaución de encriptar esa tabla, para que no te la pueda alterar un usuario listo...
Saludos y suerte
323
« en: Miércoles 2 de Abril de 2003, 19:26 »
Me ocurre lo mismo con una red Lantasti, de Artisoft. Pero eso no me crea mayor problema que el estético: el sistema reconoce bien los ficheros con nombre corto (de MS-DOS), salvo que trabajes con un sistema que repudie al DOS... (Win-2000, por ejemplo)
Con esta Function puedes convertir un nombre largo a nombre corto por si te fuera indispensable trabajar con los dos ficheros con nombre corto; lo que no sé es si hay otra para convertir el nombre corto en largo...
'-------------------- Public Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
Dim sBuf As String * 260 Dim i As Long Dim cPathDat as String
cPathDat = "Nombre largo del fichero, con ruta incluida" i = GetShortPathName(cPathDat, sBuf, Len(sBuf)) cPathDat = Left$(sBuf, i) ' Te ha devuelto el nombre corto
' ---------------------------
Saludos.
324
« en: Martes 1 de Abril de 2003, 00:55 »
Prueba a poner:
..... in #" & desde & "# to #" & hasta & "#"
Si las fechas las tomas de un textBox, posiblemente precises poner esta otra definición:
..... in " & DateValue(""" & desde & """) & " to " & DateValue(""" & hasta & """)
Saludos y suerte
325
« en: Lunes 31 de Marzo de 2003, 19:03 »
Hola Sonnya: No te molestes en cambiar de versión de Access; el problema con los decimales no depende de eso sino del propio Visual... En todos los textBox que traten números incluye este código (por supuesto, donde pongo txtNumber, tú pones el nombre del textBox correspondiente) Private Sub txtNumber_Change() Static strSaved As String If txtNumber.Text <> "" And txtNumber.Text <> "-" And txtNumber.Text <> "." And txtNumber.Text <> "-." Then If Not IsNumeric(txtNumber.Text) Then txtNumber.Text = strSaved SendKeys "{END}" Beep End If End If strSaved = txtNumber.Text End Sub Espero que con esto tengas solucionado el problema de los decimales, que a todos nos ha tenido locos durante una temporada... Un abrazo y suerte NOTA: Es de justicia indicar que este código lo bajé de http://www.planet-source-code.com/vb/default.asp?lngWId=1
Páginas: 1 ... 11 12 [13] 14 15 ... 17
|
|
|