|
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 ... 9 10 [11] 12 13 ... 17
251
« en: Viernes 25 de Abril de 2003, 11:27 »
Perdón por encabezar la lista, pero alguno tiene que ser el primero:
jmovillac@hotmail.com
Gracias
252
« en: Viernes 25 de Abril de 2003, 00:19 »
Hola, Kennety:
Yo pienso que esos equipos son antediluvianos... porque ¡cuidado que hace años y años que funciona el LapLink para trasmisión de datos por puerto paralelo...! Y por supuesto el puerto paralelo servía tanto para output como para input... Tienen, repito, que ser muy viejos esos trastos, y no me extraña que te hayan tenido majara...
Congratulaciones por haber dado con el quid, y un saludo
253
« en: Viernes 25 de Abril de 2003, 00:12 »
En el RecordSource debes incluir las otras dos tablas, interrelacionadas por el campo común. Por ejemplo:
SQL="Select a.*, b.*, c.* From Clientes a, Articulos b, Cobros c Where [a.codigo = 1234 And ] b.codigo = a.codigo And c.codigo = a,codigo ......"
db.RecordSource = SQL db.Refresh
Lógicamente esos criterios se referirán en tu caso a los campos por los que tengas relacionadas las tablas, así como si necesitas hacer algún filtro...
Saludos y suerte
254
« en: Jueves 24 de Abril de 2003, 23:55 »
Hola, Roberto: Se te ha olvidado que el límite de los ficheros adjuntos es de 64 Kb. Por eso los dos ficheros que has adjuntado dan error de incompletos. Ya sabes, o FTP o toma nota de cuantos te pedimos que nos lo envíes por e-mail, con gracias anticipadas...
Saludos
255
« en: Jueves 24 de Abril de 2003, 18:01 »
Hola Jaume: Este problema me surge frecuentemente, tanto en el evento Validate como en el LostFocus.
Lo soluciono así:
Private Sub txtSig_Validate(Cancel As Boolean) ' ------------------------- If not lVale Then Exit Sub lVale = False '-------------------------- If IsNull(txtSig.Text) Or Trim(txtSig.Text) = "" Then x = MsgBox("No puede dejar este campo vacío.", vbCritical) txtSig.SetFocus Exit Sub End If End Sub
La variable lVale, como la uso en toda la aplicación, la tengo definida como Public. Al entrar en todos los formularios que conllevan input la inicializo a False. Y en todos los eventos conflictivos pongo el condicionante del ejemplo.
Cambio su valor a True sólo cuando me interesa, como por ejemplo en
Private Sub txtSig_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then CboAut.SetFocus ' Foco al siguiente campo lVale = True txtSig_LostFocus ElseIf KeyCode = 27 Then CmdCan_Click End If End Sub
Ya lo tengo por sistema, y se me han solventado los quebraderos de cabeza por ese pasar y repasar por esos eventos.
Saludos y suerte
256
« en: Jueves 24 de Abril de 2003, 17:42 »
Mira este pequeño paquete. Creo que lo bajé de la Web del Programador, pero no estoy seguro. Tiene varias fórmulas, sobre todo en el fichero Shell_vb.txt: alguna de ellas te dará la solución que buscas.
Saludos y suerte
257
« en: Jueves 24 de Abril de 2003, 10:56 »
Macarena, ¿otra vez te veo con la cabeza agachada! échala hacia arriba y di nuevamente ¡soy feliz!!!
No entiendo bien tu planteamiento, porque el dbgrid se limpia solo, en cuanto haces un refresh del data que lo alimenta.
Tú cambias las condiciones de filtro del data, con un Data1.RecordSource = SQL, por ejemplo, y en cuanto pongas Data1.Refresh, verás cómo el dbGrid te presenta los registros que cumplen el criterio de la SQL
Si no es así, mándame, por favor, el ejemplo práctico ahora mismito, que tengo media hora libre
Saludos
258
« en: Jueves 24 de Abril de 2003, 09:54 »
Me encanta tu alegría, Macarena. Y me gustaría que me hicieses partícipe de tus avances: además de que yo voy a aprender, es bueno que tú te sientas "profesora", y que ese estímulo te anime a seguir por ese buen camino del altruísmo.
Gracias y un abrazo
259
« en: Miércoles 23 de Abril de 2003, 18:21 »
Este es un problema propio de los foros; en un chat no te ves la cara, pero al menos respondes en directo y no da tiempo a malas interpretaciones... Porque yo en este caso he empezado diciéndote "sin acritú..." en plan de gracia, pero quizá tú lo hayas interpretado como que veo acritud en tu mensaje anterior, lo cual no es así.
En resumen, que los dos estamos de acuerdo, y que a Roberto se lo estamos complicando con nuestros temas y el nuevo de Juank... Va a tener que decidir lo que mejor le vaya.
Un afectuoso saludo
260
« en: Miércoles 23 de Abril de 2003, 13:13 »
Hola Jaume: por supuesto que es Roberto quien tiene la última palabra. Yo he interpretado que a él le duele el que estén usando su programa desde equipos para los cuales él no ha cedido la licencia; por eso le he presentado mi versión, con la que creo que puede controlar precisamente ese abuso de su cliente. Si tuviera que afinar más e impedir que se use desde equipos distintos a los predeterminados, podría grabar en el PrgSetup el nombre interno de cada máquina. Pero eso sólo en el caso de que haya un informático interesado en hacerle a Roberto la pascua... Con tu versión sospecho que podrán seguir utilizándola los 200 equipos para los que él no ha autorizado su uso. Eso es lo que yo entiendo. En todo caso, perdona si interpretas que me he metido donde tú ya habías sentado plaza; mi idea es que en un foro puede uno meter baza, e incluso meter la pata, como hacemos muchas veces con la mejor intención.
Un abrazo a ambos
261
« en: Miércoles 23 de Abril de 2003, 11:30 »
Por mi parte, gracias a ti
262
« en: Miércoles 23 de Abril de 2003, 11:17 »
A mi entender, la solución que plantea Jaume únicamente limita el número de usuarios que pueden abrir simultáneamente la aplicación; pero con tal de que no estén activos más de 17, la aplicación puede ejecutarse desde 200 equipos.
Mi solución es la siguiente:
Primero: En cada equipo con licencia abres un directorio con el nombre, por ejemplo, de tu aplicación ("miAplicac", para mi ejemplo) y en el mismo copias el fichero UsuSetup.mdb que te adjunto. ¡¡¡Atención!!! Cada usuario tendrá grabado en el campo PdeP su propia Clave de Acceso (Palabra de Paso), que ha de coincidir con la que tú definas en el registro correspondiente a ese número de usuario en el otro fichero PrgSetup.mdb, que también te adjunto.
Esa Clave de acceso, estará lógicamente encriptada.
Segundo: En el Servidor, en el directorio de tu propia aplicación, grabas el fichero antedicho PrgSetup.mdb, y encriptas también este fichero. Previamente, en PrgSetup.mdb habrás generado los 17 registros para tus 17 usuarios, y en cada uno habrás grabado encriptada la clave de acceso correspondiente, en el campo PdeP Puedes en este fichero incrementar nuevos campos, como puede ser por ejemplo la ruta para la base de datos común de la aplicación, por si no quieres tenerla en App.Path; el nombre personalizado de cada usuario, por si quieres hacer esquisiteces...
Tercero: En el Objeto inicial de tu proyecto, lo primero que haces es pedir al usuario su Número de Usuario que volcarás en una variable NumUsu, por ejemplo; luego desencriptas el fichero App.Path & "Prgsetup.mdb". lo abres y ejecutas un MoveNext hasta situarte en el registro correspondiente al NumUsu; defines una variable MiControl = M_Empres!PdeP
Cuarto: Abres el fichero "C:MiAplicacUsuSetup.mdb"; la tabla "M_Usuar" y comparas si el campo "PdeP" es igual a la variable "MiControl". De esta forma cada usuario tiene que tener una sóla clave. Si la comparación es falsa, haces un End tras presentar mensaje de que "Usted no es el Usuario Núm. " & NumUsu. Puedes incluso añadir el nombre propio del usuario, para que quede personalizado... Eso a gusto del consumidor.
Quinto: Luego desencriptas MiControl y preguntas al usuario su palabra de paso, para dárselo si coincide con el password que le habías grabado tú.
Naturalmente tienes que trabajarte este sistema, haciéndote una rutina externa con la cual crear los registros de cada usuario con su password encriptado, y que al mismo tiempo genere un fichero UsuSetup.mdb con una tabla M_Usuar que contenga esa misma clave en su campo PdeP
Saludos y suerte
263
« en: Miércoles 23 de Abril de 2003, 08:41 »
Habida cuenta de que el caso se ha resuelto vía e-mail y que se han tocado temas de interés general, creo conveniente publicar las soluciones:
Primero: El tema de la fecha queda así: SQL1 = "select * from prestamolibros where fechadevolucion = DateValue(""" & DTPicker1 & """)"
Segundo: Me planteó también el poder seleccionar los registros que en un campo tipo memo (de nombre "estado") contuvieran una determinada palabra o frase. Esta es la solución: SQL1 = "select * from libros where estado like '*" & Text1.Text & "*'", con asterisco por delante y por detrás.
Tercera: ¡¡¡ATENCIÓN!!! El mismo filtro en un DataEnvironment para conformar un Data Report no surtía efecto (o daba error, no recuerdo) y se solucionó de esta guisa: SQL = "Select * From Libros Where Instr(estado,'" & Text1.Text & "')"
Esta tercera solución creo que es muy interesante, a pesar de que su uso no vaya a ser muy frecuente.
Saludos a todos
264
« en: Martes 22 de Abril de 2003, 21:07 »
Soy de la opinión de HurryCrack, en el sentido de que no es muy útil actualizar los campos del dbGrid directamente (aunque sé de varios ejemplos que te lo permiten). Todos ellos crean confusión cuando incrementas un registro.
Yo te adjunto un ejemplo que espero te guste. Ya me contarás.
Saludos y suerte
265
« en: Martes 22 de Abril de 2003, 18:18 »
Hola, Macarena: Supongo que no tienes el MSDN, porque en él viene perfectamente explicado cómo trabajarte un split en dbGrid.
Por si no tienes la ayuda, te adjunto ese resumen, aunque en el MSDN hay muchísimo más referente a cada una de las Propiedades y los Eventos...
Si lo crees necesario me lo dices y procuraré hacer un fichero con todo lo que se refiera a este tema.
Saludos y suerte
266
« en: Martes 22 de Abril de 2003, 00:31 »
He hecho multitud de pruebas tratando de sustituir las comillas simples por dobles, insertando el chr(39). Nada, imposible.
Iba a proponerte como solución simulada que pusieras un espacio acentuado (´) que es muy parecido a ('); pero me parece mejor fórmula la de Majuhemo, pudiendo utilizar como comodín cualquier otro carácter si es que la interrogación puede formar parte normal de alguno de tus campos.
Suerte
267
« en: Lunes 21 de Abril de 2003, 17:10 »
Hola:
SubCadena = Mid( Cadena, 3, 2)
Esto te selecciona los caracteres 3 y 4; es decir, desde la posición 3, 2 caracteres.
Saludos y suerte
268
« en: Lunes 21 de Abril de 2003, 08:38 »
Yo te aconsejo que no busques muy lejos... Porque si tratas de acceder a los datos del ADO antes del Refresh comprobarás que te da error; pero en cuanto haces el Refresh verás que accedes perfectamente, lo cual debe hacerte pensar que el error te lo da la SQL siguiente. Salvo error u omisión, que se dice habitualmente...
Saludos y que encuentres pronto la solución
269
« en: Lunes 21 de Abril de 2003, 01:13 »
No creo que tengáis que pedirme permiso para hacer lo que consideréis conveniente.
En todo caso tenéis mi conformidad.
Saludos
270
« en: Lunes 21 de Abril de 2003, 01:11 »
Muchas gracias por el arreglo. La pregunta ha quedado perfectamente expuesta, aunque no coincida con la que yo propusiera, que tampoco la recuerdo.
Reitero mi agradecimiento por esto y por vuestra labor en general.
271
« en: Lunes 21 de Abril de 2003, 01:06 »
Esta sí está clara...
Pon así:
"Hoy es " & Format(Date, "dddd")
Suerte
272
« en: Lunes 21 de Abril de 2003, 01:00 »
Lo siento, Michael; no sé qué quieres decir: ¿Que te presenta la fecha en formato MM/dd/aaaa, por ejemplo, y te pone 2 de junio en lugar de 6 de febrero?
Si es esto, revisa cómo tienes diseñada la Fecha en la Configuración regional del Panel de Control.
Saludos y feliz Pascua
273
« en: Lunes 21 de Abril de 2003, 00:53 »
Yo nunca he empleado la instrucción INSERT INTO, pero lo que sí veo bien claro es que detrás de ADO.RecordSource = "C_Empleados"
tienes que hacer un ADO.Refresh
porque en otro caso el Recordset está todavía vacío...
Saludos y feliz Pascua
274
« en: Lunes 21 de Abril de 2003, 00:09 »
Pues, simplemente, en el momento y punto en que quieras que suene, escribes la línea Beep
El ejemplo que trae MSDN es exactamente
Dim I For I = 1 To 3 ' Realiza un bucle 3 veces. Beep ' Emite un tono. Next I
Saludos y feliz Pascua
275
« en: Lunes 21 de Abril de 2003, 00:02 »
Efectivamente, no creo que nadie busque méritos en esta forma de ayudar a los demás; yo al menos, me siento francamente satisfecho sólo con dedicar parte de mi escaso tiempo libre a ayudar a quien pueda beneficiarse de mis conocimientos.
Pero me resulta poco agradable el quedarme casi siempre sin saber si mi pequeño o gran esfuerzo ha servido para algo o si la persona que consultó ni siquiera ha leído la solución que le proponía...
Y si esto me pasa a mí, supongo os pase a todos los que estáis colaborando para hacer que "solocodigo" sea uno de los foros más vivos...
Y sobre todo, que así ¿quién va bajarse todas las propuestas que hacemos si nadie les asegura que funcionan...?
Vale. Os agradezco vuestro apoyo.
Páginas: 1 ... 9 10 [11] 12 13 ... 17
|
|
|