|
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 - Jose Arriagada
Páginas: 1 ... 12 13 [14] 15
326
« en: Miércoles 1 de Enero de 2003, 23:52 »
Utiliza el siguiente codigo para guarda el valor de la variable en un archivo txt.
ArchivoSalida="C:SALIDA.TXT" 'Defino el archivo de salida open ArchivoSalida for output as #1 'Abro el archivo print #1, Variable 'Guardo el valor de la variable close(1) 'Cierro el archivo
Para leer el valor de la variable usa: ArchivoEntrada="C:SALIDA.TXT" 'Defino el archivo de entrada open ArchivoEntrada for input as #1 'Abro el archivo input #1, Variable 'Leo el valor almacenado en el archivo close(1) 'Cierro el archivo
Espero te sirva
327
« en: Martes 24 de Diciembre de 2002, 02:22 »
Cuando generas el paquete de instalacion, al final el asistente te pregunta por los archivos que seran compartidos, ahi debes seleccionar el archivo de tu aplicacion con extension exe, y lo dejara compartido al momento de instalarlo.
La gracia de las aplicaciones en red, es que debes instalarlos la primera vez en todos los equipos, y dejar el ejecutable en un directorio que lo vean todos los usuarios en la red, por ejemplo, en el drive f:appsmisaplicacionesmiprograma.exe, y modificar el acceso directo despues de la instalacion, al programa de la red. Asi cuando actualices tu programa, solo actualizas el de la red, y no todos los equipos.
Saludos
328
« en: Martes 24 de Diciembre de 2002, 02:11 »
Estimado amigo(a) Si ves las preguntas y respuestas anteriores, veras que alguien pregunto algo similar, y la respuesta esta a la mano. En caso que no la encuentres, la solucion es la siguiente: Cuando tu aplicacion se ejecute tu aplicacion, lo primero que debes hacer, es buscar un archivo fffff.eee (un archivo con un nombre que solo tu sabras, y una extension que no sea las que utiliza windows) en un directorio que tu predefines, por ejemplo, c:windowssystem. Si el archivo no se encuentras, entonces lo generas y guardas en el la fecha de la primera ejecucion. Cuando se ejecute, las veces siguientes, al preguntar por la existencia del archivo, si se encuentra entonces, ya se ejecuto y tu realizaras las acciones pertinentes. Espero te sirva, cualquier cosa, comunicate conmigo al jose_arriagada@hotmail.com
329
« en: Martes 24 de Diciembre de 2002, 02:00 »
Utiliza la siguiente funcion
Sub Function Existe_Archivo(byval FileName as String) as boolean on error goto Control_Error nError=0 open FileName for input as #1 if nError=0 then close(1) Existe_Archivo=True else Existe_Archivo=False endif Exit sub
Control_Error: nError=err.number Resumen Next End Function
330
« en: Viernes 13 de Diciembre de 2002, 23:16 »
331
« en: Viernes 13 de Diciembre de 2002, 23:09 »
Utiliza la siguiente funcion:
Public Function HoraMilitar(ByVal xHora As String) As String xHora = UCase(xHora) largo = Len(xHora) pos1 = InStr(xHora, ":") laHora = CInt(Mid(xHora, 1, pos1 - 1)) pos2 = InStr(xHora, " ") LosMinutos = CInt(Trim(Mid(xHora, pos1 + 1, pos2 - pos1))) pos3 = InStr(xHora, "P") If pos3 > 0 Then If laHora <> 12 Then laHora = laHora + 12 End If End If HoraMilitar = Format(laHora, "00") & ":" & Format(LosMinutos, "00") End Function
332
« en: Viernes 13 de Diciembre de 2002, 16:08 »
Si deseais que solucionemos vuestros problemas, cuando presenten sus requerimientos sean explicitos y detallen todo cuando puedan, de manera de entregar toda la informacion posible para poder dar respuesta.
Si no, nos vamos de mensaje en mensaje para tratar de ADVINAR que cresta quieren!!!
Gracias.
333
« en: Jueves 12 de Diciembre de 2002, 17:38 »
Estimado Alejandro:
Si buscas en las consultas anteriores (no mas de una semana) encontraras la respuesta. Ya se la habiamos dado a un amigo.
En todo caso, la solucion es: Cuando se ejecute tu programa por primera vez, captura la fecha del dia y la registras en una archivo con alguna extension distinta a las que maneja windows y la colocas en cualquier carpeta dentro de windows. Por ejemplo: C:WINDOWSSYSTEMDPPERT.COP
El nombre y extension solo lo sabras tu.
Ahora, como saber si es la primera o siguientes ejecuciones. Facil. Busca el archivo C:WINDOWSSYSTEMDPPERT.COP y si no lo encuentra, entonces es la primera ejecucion, si no, son las siguientes. Y para ello, lees el archivo, que contiene la fecha de 1ra ejecucion y la comparas con la fecha actual del PC.
Por diferencia de fechas, obtienes cuantos dias lleva la aplicacion en el PC.
Una mejora a esta version de prueba, es que ademas coloques en el archivo la fecha de la ultima ejecucion, de manera tal de saber si el usuario ha manipulado la fecha del PC. Y asi puedas realizar los procedimientos y mensajes correspondientes, dependiendo de tus necesidades.
Espero te sirva.
Saludos
334
« en: Jueves 12 de Diciembre de 2002, 17:30 »
Una posible solucion es la siguiente:
Genera en tu base de datos, una tabla que contenga la imagen que deseas de logotipo. A tu reporte enviale un parametro desde tu aplicacion que dependiendo de este, pone o no el logotipo desde la base de datos.
En tu aplicacion, coloca dos botones: uno SOLO para visualizar, sin las opciones de imprimir, exportar, etc. Y el parametro para que el reporte al visualizar ponga el logotipo.
El otro boton, es de impresion directa SIN VISUALIZAR, y envias el parametro para que el reporte al activarse, no aparezca el logotipo.
335
« en: Miércoles 11 de Diciembre de 2002, 16:45 »
Formatear cualquier unidad A través de la siguiente función podremos formatear cualquier unidad, de modo que su utilización debe hacerse con mucho cuidado. Dicha función devolverá 0 si todo ha funcionado correctamente.
Public Declare Function SHFormatDrive Lib "shell32" (ByVal hwnd As Long, ByVal Drive As Long, ByVal fmtID As Long, ByVal options As Long) As Long Poner el siguiente código en un formulario:
Private Declare Function SHFormatDrive Lib "shell32" (ByVal hwnd As Long, ByVal Drive As Long, ByVal fmtID As Long, ByVal options As Long) As Long
Private Sub Command1_Click() Formatear "A" End Sub
Public Function Formatear(Raiz As String, Optional VentanaMadre As Long) As Boolean Dim DriveNumber As Long DriveNumber = (Asc(Raiz) - 65) //* Cambiar la letra a número: A=0 y análogamente Formatear = SHFormatDrive(VentanaMadre, DriveNumber, vbNull, vbNull) //*Esta última línea también puede ser //*Formatear = SHFormatDrive(VentanaMadre, DriveNumber, 0&, 0&) End Function
336
« en: Miércoles 11 de Diciembre de 2002, 16:33 »
El control combobox tiene una propiedad llamada STYLE, cuyas opciones son:
0: Dropdown Combo 1: Simple Combo 2: Dropdown List
Utiliza la propiedad 2 y prueba.
Salu2
337
« en: Lunes 9 de Diciembre de 2002, 22:28 »
'Inicializa la funcion aleatoria Randomize 'Obtiene un numero cualquiera n = CInt(Rnd(100) * 100) 'Recorre las filas For i = 1 To n 'Recorre las columnas For j = 1 To n 'Flag para encontrar un 0 o 1 sigue = 1 While sigue = 1 Randomize x = CInt(Rnd * 10) 'Consulta si es 0 o 1 If x = 0 Or x = 1 Then 'Si es 0 o 1, lo visualiza sigue = 0 End If Wend Print x Next j Next i
338
« en: Lunes 9 de Diciembre de 2002, 22:16 »
Javier.
Agredezco enormemente tu colaboracion, me ha servido montones. Entendi claramente las instrucciones y las voy a seguir. Solo me falta un detalle. Hice la prueba de acuerdo a tus indicaciones, y puedo mostrar todas las impresoras, y configurar cada una de acuerdo a mis requerimientos. Pero al momento de disparar un reporte en Crystal, y le indico la impresora. Continua con la impresora por defecto. ¿Cual es mi problema? El codigo de asignacion es el siguiente:
Reporte.ReportFileName = app.path & "REPORTESDOCTOS_RECIBIDOS.RPT" Reporte.PrinterName = LaImpresoraQueQuiero Reporte.Destination = crptToPrinter Reporte.Action = 1
Un agradecido
339
« en: Lunes 9 de Diciembre de 2002, 20:41 »
Amigos:
Tengo la siguiente situacion: Tengo una aplicacion multiusuario, que realiza diferentes procedimientos. Y tengo varias impresoras en red. Cada impresora con un tipo de papel diferente (por el tipo de informacion que imprime).
Como puedo hacer que el usuario al realizar un proceso de : a). Orden de compra, la impresion salga en la impresora 01. b). Factura, la impresion salga en la impresora 02. c). Recibo de pago, la impresion salga en la impresora 03.
Todo esto en forma background, transparente para el usuario, sin tener el que elegir en que impresora imprimir, que sea todo automatico.
Muchas gracias a quienes me ayuden.
340
« en: Lunes 9 de Diciembre de 2002, 20:26 »
Yo utilizo conexion RDO.Si te sirve, prueba.
1. Crea una conexion ODBC en tu PC, que apunte a la base de datos SQL que tu requieres.
2. En tu aplicacion, selecciona Proyecto->Referencias y marca la opcion Microsoft Remote Data Object 2.0
3. En un modulo .bas, pone las siguientes variables.
Global aConexion As rdoConnection Global bConexion As rdoConnection Global Resultado As rdoResultset Global Respuesta As rdoResultset Global Aenv As rdoEnvironment Global Benv As rdoEnvironment
Global gDSN as string Global gUID as string Global gPWD as string Globa gDataBase as string
Crea un procedimiento llamado Conectar:
Public Sub Conectar() Set Aenv = rdoEnvironments(0) Set Benv = rdoEnvironments(0)
Aenv.CursorDriver = rdUseOdbc Benv.CursorDriver = rdUseOdbc
sConnect = "ODBC;DSN=" & gDSN & ";" sConnect = sConnect & "UID=" & gUID & ";" sConnect = sConnect & "PWD=" & gPWD & ";" sConnect = sConnect & "DATABASE=;" & gDataBase
Set aConexion = Aenv.OpenConnection(sConnect) Set bConexion = Benv.OpenConnection(sConnect) End Sub
Crea un procedimiento llamado Desconectar:
Public Sub Desconectar() aConexion.Close bConexion.Close End Sub
En el load del form principal, coloca el siguiente codigo:
Sub Form_Load() gDSN="MiConexion" gUID=""MiUID" gPWD="MiPassword" gDataBase="MiBaseDatos" Call conectar() End Sub
En un boton command, agrega:
Private Sub Command1_Click() Tabla="EMPLEADOS" 'Nombre de una tabla de la base de datos Sentenciasql="select * from " & Tabla Set Respuesta = aConexion.OpenResultset(SentenciaSQL) while not respuesta.eof print respuesta!codigo_empleado print respuesta!nombre_empleado respuesta.movenext wend End Sub
En otro boton command, agrega:
Private Sub Command2_Click() call desconectar() En Sub
Cualquier cosa, enviame un emilio y te respondo si te puedo ayudar.
341
« en: Viernes 6 de Diciembre de 2002, 14:19 »
Si deseas que te ayudemos tienes que ser mas especifica y clara con lo que pides. En este caso, debes indicar o mostrar el codigo que utilizas para asi poder indicarte como solucionar tu problema.
342
« en: Jueves 5 de Diciembre de 2002, 17:45 »
Una cosa son objetos y lo otro son controles. Cual de los dos tipos quieres crear dinamicamente?
343
« en: Jueves 5 de Diciembre de 2002, 17:43 »
Si se pueden abrir mas de una planilla excel en tiempo de ejecucion, el problema se notara si el equipo donde lo ejecutas es rapido y tiene capacidad de memoria para soportar tantos registros.
Una posible solucion, es que a medida que guardas los datos, cuando llegues a los 65.625 registros, te cambies a la hoja siguiente del excel, y sigues guardando los datos.
344
« en: Jueves 5 de Diciembre de 2002, 17:41 »
Aceptar=Insertar?
Todo esto en que tipo de base de datos? Como te conectas: RDO,ODBC, ADO? En una macro de que? WORD,EXCEL ?
345
« en: Jueves 5 de Diciembre de 2002, 17:39 »
Asumiendo que las tablas que se encuentran en el combobox todas tienen un campo llamado numero, entonces, apoyo a ROBER.29. ¿Que numero y mensaje te envia?
Si no, tendras que revizar que la tabla que seleccionas en el combobox, tenga el campo que estas filtrando, en este caso, NUMERO.
346
« en: Martes 3 de Diciembre de 2002, 14:29 »
Efectivamente la variable esta mal asignada: El codigo completo es Dim MiDocto As New Word.Application MiArchivo = app.path & "MANDATO.DOC"
'abre el mandato MiDocto.Application.Documents.Open MiArchivo 'relleno de marcadores MiDocto.Documents.Item(1).Bookmarks.Item("Numero").Range.Text = Format(CDbl(dNumero), "000000") MiDocto.Documents.Item(1).Bookmarks.Item("Fecha").Range.Text = Format(date,"dd-mmm-yyyy") MiDocto.Documents.Item(1).Bookmarks.Item("Titulo").Range.Text = "Original" MiDocto.Documents.Item(1).Bookmarks.Item("Referencia").Range.Text = "Empresa" 'Envio a impresion MiDocto.Application.PrintOut Set MiDocto= Nothing 'Sale sin grabar MiDocto.Quit (0)
Al aplicar tu ayuda, VB no me considera el comando CLOSE como propiedad del objeto MiDocto
No me funciona el cuento
Gracias por tu ayuda
347
« en: Lunes 2 de Diciembre de 2002, 18:27 »
Tengo el siguiente codigo. Lo que hace es: Abrir un documento word existente que contiene marcadores. Lo lleno con algunos datos y lo mando a imprimir. La ultima sentencia no graba los cambios. Cuando cierro la aplicacion, el WORD sigue trabajando background.
ALGUIEN SABE COMO CERRAR EL DOCUMENTO BACKGROUND?
Gracias por vuestra ayuda.
Dim MiDocto As New Word.Application MiArchivo = app.path & "MANDATO.DOC" 'abre el mandato MiDocto.Application.Documents.Open MiArchivo 'relleno de marcadores Mandato.Documents.Item(1).Bookmarks.Item("Numero").Range.Text = Format(CDbl(dNumero), "000000") Mandato.Documents.Item(1).Bookmarks.Item("Fecha").Range.Text = Format(date,"dd-mmm-yyyy") Mandato.Documents.Item(1).Bookmarks.Item("Titulo").Range.Text = "Original" Mandato.Documents.Item(1).Bookmarks.Item("Referencia").Range.Text = "Empresa" 'Envio a impresion Mandato.Application.PrintOut Set Mandato = Nothing 'Sale sin grabar Mandato.Quit (0)
348
« en: Lunes 2 de Diciembre de 2002, 18:24 »
Puedes hacer lo siguiente: La primera linea del archivo guarda el numero de filas "F" y en la segunda linea el numero de columnas "C" Las siguientes "F"x"C" registros guardalos en formato FxCy=V donde x es la fila, y es la columna y V el valor de la celda. Ahora bien, si quieres antes de guardar, si lo haras para todas las celdas o solo para las celdas con valores.
349
« en: Lunes 2 de Diciembre de 2002, 14:51 »
Supongo que a tu programa sera de prueba x 30 dias.
Existe una forma "bruja" de hacerlo. Cuando se ejecuta por primera vez, tu programa registra la fecha del PC y lo guarda en un archivo en algun directorio de windows con un nombre que solo tu identificaras. Cuando se ejecute las proximas veces, buscas el archivo y comparas las fechas, y asi vas viendo cuandos dias le van quedando.
Una modificacion a esta alternativa, es que en el archivo coloques la fecha de instalacion, y la fecha de ultima lectura, de manera tal que si el usuario cambia la fecha del PC, tu puedas controlar esta situacion y ejecutar o no el programa.
350
« en: Viernes 29 de Noviembre de 2002, 22:57 »
1). Si accedes a access a traves de recordset, es facil: solo tienes que hacer lo siguiente: a). Inserta un control data b). En la propiedad database busca la base de datos y seleccionala c). En la propiedad Recordsource selecciona la tabla de la base de datos d). Inserta un control text e). Enlaza la propiedad datasource con el objeto data f). En la propiedad Datafield selecciona el campo de la tabla
Ahora hecha a correr el programa y veras que a medida que presionas el control data, se mueven los datos del text. Si modificas el dato en el texto, se modifica automaticamente en la tabla. Haz la prueba y mueve el data hacia adelante y despues hacia atras, y lo veras. Para eliminar o insertar tienes que colocar botones que hagan estas acciones.
2). Si accedes a la tabla por medio de ADO, RDO o ODBC la cosa implica mas codigo.
Espero te sirva
Páginas: 1 ... 12 13 [14] 15
|
|
|