|
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 - giomar
Páginas: 1 ... 8 9 [10] 11
226
« en: Martes 26 de Agosto de 2003, 19:49 »
Desde luego que si, para desarrollar sistemas debes hacerlo en base a codigo ADO ya que es mas robusto que el control Data. El Data solo es como para familiarisarse con el lenguaje VB almenos yo lo hice asi pero para aplicaciones reales tienes que utilizar el codigo ADO. Ahora si no me equivoco tu buscas lo que yo llamo busqueda incremental. De ser asi: Entonces te debe servir la aplicacion que te dejo a continuacion OJO: aqui uso el control DataGrid el control DBGrid no lo empleo. Espero que te sirva... Un saludo y suerte.. <<_GIOMAR_>>
227
« en: Martes 26 de Agosto de 2003, 19:38 »
Primero que nada te recomiendo que en lo posible no utilices variables de tipo Variant devido a que ocupan espacio en memoria. Ahora el Nothing se usa para destruir objetos, por ejemplo: cuando trabajamos con ADO se crean objetos que se uzan como recipientes de informacion los famosos RecordSet bueno estos objetos hay que destruirlos al momento de descargar los formularios debido ha que si no hacemos esto esas conexiones a la base de datos se quedaran abiertas en memoria y eso con el tiempo es contraprodusente, entoces la forma en que se destruyen esos objetos es la siguiente: set rs=nothing de igual manera se destruye la conexion set cn=nothing he inclusive algunos hasta el mismo formulario set MiForm=nothing Para eso se usa el Nothing para destruir objetos. Ahora si tu quieres saber si una variable esta vacia tienes que igualar esa variable a Empty osea: Variable=empty Espero que sea lo que buscabas Un saludo... <<_GIOMAR_>>
228
« en: Martes 26 de Agosto de 2003, 19:08 »
Como veo que estas empleando codigo ADO entonces prueba con esto. La solucion mas rapida y facil es usar instrucciones SQL para ello utilizaras de otro RecordSet donde almacenaras el numero de fatura y la cantidad de facturas que cada una de elllas tiene ¡Me parece que eso es lo que buscas! Coloca el siguiente script donde deseas que se realice la operacion: dim rs as new Adodb.RecordSet set rs=new Adodb.RecordSet set rs=NombreConexion.Execute("Select Num_Fac as Factura,count(Num_Fac) as Cantidad From factura where Num_Fac='" & txtNum_Fac & "' GROUP BY Num_Fac") txtTotal.text=rs.fields(1).value set rs=nothing De esta manera obtendras la cantidad de facturas que tienes. Ahora solo tendras que acomodar el codigo segun como estes realizando tu aplicacion. Si sigues teniendo problemas puedes enviar tu aplicacion o el codigo para poder ayudarte mejor. Un saludo y suerte <<_GIOMAR_>>
229
« en: Viernes 22 de Agosto de 2003, 18:00 »
Si has hecho un sistema con Crystal Report se supone que lo tienes instalo en tu maquina entonces tendrias que ver por medio de las Referencias y Componentes todas las Dll y OCX que usa el Crystal son faciles de reconocer pues llevan su nombre, una vez halladas tendrias que darte al trabajo de copiarlas y registrarlas en la PC que deseas que se ejecute.
Bueno pero tengo una duda al generar el EXE el asistente de empaquetado no agrega al CAB los DLL y OCX que usa el proyecto por que segun tengo entendido eso es lo que hace. Si por algun motivo no te diste cuenta de eso y deberas el asistentes agrega los DLL y OCX al CAB entonces en una de las ultimas ventanas de dialogos del instalador te muestra los archivos que esta incorporando en el CAB y la ruta donde estos archivos se van a copar al momento de la instalacion, en esta ventana que la verdad no me acuerdo orita cuando aparece o que titulo lleva es donde tienes que cambiar la ruta de los archivos DLL y OCX a SYSTEM para que al momento de instalarlos se copien alli. Inclusive ya no tienes la necesidad de registrarlo pues el instalador lo haria. Espero que ayude en algo Un saludo... <<_GIOMAR>>
230
« en: Viernes 22 de Agosto de 2003, 17:46 »
Mira la idea es recorrer todo el datagrid por medio de un bucle en el cual debera estar un acumulador que ira sumando las cantidades del campo que desees para posteriormente mostrarlo en el textbox que deseas. El codigo seria el siguiente: Dim acumulador as integer acumulador=0 For a=1 to Datagrid1.Row acumulador=acumulador+Datagrid1.Columns(IndiceDeColumna_a_Sumar).Value End for text1.text=acumulador Ahora si el resultado es un valor numerico y deseas que se establesca un formato pues cambia la siguiente linea: text1.text=acumulador Por text1.text=Format(acumulador, "standard") Y nada mas Suerte.... <<_GIOMAR_>>
231
« en: Viernes 22 de Agosto de 2003, 17:32 »
Con el codigo del amigo J.M.Movilla obtuve el resultado que desea. Lo adicione en mi aplicacion y resulta a la perfeccion. Con esto doy por concluido el caso de este vendito caracter(') que ya me tenia loco.. Claro sin antes agradecer a todos los que pusieron de su parte para ayudarme a resolverlo. Un saludo compañeros... Hasta la proxima... <<_GIOMAR_>> 
232
« en: Viernes 22 de Agosto de 2003, 16:47 »
Gracias Brroz el resultado es mejor del que esperaba inclusive me ayuda a simplificar el codigo para lo que estaba pensando en hacer. Por lo que veo Chiaravel me gano en la pregunta pues tambien empezaba a tener esa duda. Si cada vez que ejecute mi aplicacion registro el componente pues quizas con el tiempo el registro de ese componente se malogre por decirlo de alguna manera entonces la pregunta seria: ¿Hay alguna forma de porder preguntar al sistema si dicho componente ya se encuentra regitrado? para ovbiar el registro del mismo cada vez que se ejecute la aplicacion. Pienso que seria bastante interesante conocer eso, se podrian evitar muchos problemas. Hasta la proxima Un saludo a todos y muchas gracias por todo.... !De verdad a buena hora decide entrar en este Foro¡
233
« en: Jueves 21 de Agosto de 2003, 19:40 »
La idea del programa es que segun se vayan ingresando datos al text en la lista se vean todos los elementos que comienzan con esos dichos, lo que comunmente se le llama Busqueda Incremental de Datos, por eso es que lo programo asi. Ahora probe el codigo y en realidad ya no se produce el error pero existen dos detalles: 1. Que embes de Chr(29) es Chr(39) cuando lo hago con Chr(29) no pasa nada en cambio con Chr(39) resulta. 2. Que pasa si en mi base de datos necesite hacer una busqueda incremental por proveedores y un proveedor tenga el nombre de "Empresa Ronal's" haciendo el programa como me han ayudado solo podria escribir hasta "Empresa Ronal" pues al colocar ese vendito caracter (') saldria el mensaje de error "el proveedor no existe" mi pregunta es esta Estaria bien eso? y que tal si en la tabla eisten los siguientes registros: Ab'aaaaaa Ab'bbbbbb Ab'cccccccc Ab'dddddd Osea a lo que voy es de que el programa puede hacer una correcta busqueda incremental de datos pero no puede ser capaz de listarme un solo producto o lo que sea al colocar ese vendito caracter('). Un saludo... Y Gracias por su tiempo.. <<_GIOMAR_>>
234
« en: Jueves 21 de Agosto de 2003, 19:00 »
Bueno no se como esta cargando el FlexGrid, pero supongamos que utilizas un RecordSet para ello, entonces para llenar el FlexGrid debes utilizar algo parecido a esto: 'en el general Dim cnFarma As New ADODB.Connection Dim rsPrecios As New ADODB.Recordset
Private Sub Form_Load() Set cnFarma = New ADODB.Connection ruta = App.Path + "DB.mdb" cnFarma.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + ruta Set rsPrecios = New ADODB.Recordset rsPrecios.CursorLocation = adUseClient rsPrecios.Open "SELECT idarticulo,descripcion, precio FROM articulo order by descripcion", cnFarma, adOpenStatic, adLockReadOnly rsPrecios.MoveFirst MSFlexGrid1.Rows = 1 MSFlexGrid1.Clear MSFlexGrid1.FormatString = "<Codigo" & Space(20) & "|<Descripcion" & Space(20) & "|<Precio " Do While Not rsPrecios.EOF MSFlexGrid1.AddItem rsPrecios.Fields(0).Value & vbTab & rsPrecios.Fields(1).Value & vbTab & rsPrecios.Fields(2).Value rsPrecios.MoveNext Loop End Sub
'y para trasladar los datos al datareport: Private Sub cmdImprimir_Click() On Error Resume Next With dtrPrecios For fila = 1 To MSFlexGrid1.Rows - 1 For columna = 1 To MSFlexGrid1.Cols - 1 .Sections("Sección1").Controls("txtCodigo") = MSFlexGrid1.TextMatrix(fila, columna) .Sections("Sección1").Controls("txtDescripcion") = MSFlexGrid1.TextMatrix(fila, columna) .Sections("Sección1").Controls("txtPrecio") = MSFlexGrid1.TextMatrix(fila, columna) Next columna Next fila Set .DataSource = rsPrecios .Show End With End Sub 'al descargar el form Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) rsPrecios.Close Set rsPrecios = Nothing End Sub
Ahora si tienes en cuenta los nombres de los objetos en el DataReport todo este listo. Espero que te ayude.... Suerte y un saludo <<_GIOMAR_>>
235
« en: Jueves 21 de Agosto de 2003, 17:43 »
Que base de datos estas utilizando
236
« en: Jueves 21 de Agosto de 2003, 17:34 »
Lo probe y resulta, la verdad no se como no se me ocurrio probar con el SHELL. El motivo por el cual hice esta consulta era por que estoy comenzando a crear componentes (simples pero bueno recien comienzo) y notaba que seria un poco fastidioso que el usuario que quizas queria abrir la aplicaion tubiera que hacer todo el proceso del registro como copiarlo a la carpeta SYSTEM o SYSTEM32 y ejecutar el comando de registro entonce se me ocurrio que el mismo programa lo haga pero el problema ahora es el SITEMA OPERATIVO como bien sabes las rutas de las carpetas donde se debe copiar el OCX o DLL cambian segun el sistema operativo. Bueno parte de este inconveniente lo tengo resuelto ya que puedo saber por codigo que sistema operativo estoy uzando pero lo que desconozco es la ruta que tendria que especificar en cada uno para copiar el archivo y hacer el registro propiamente dicho. Osea me explico se que para Win2000 la ruta es "C:WINNTsystem32....dll" o "C:WINNTsystem....dll" porque estoy trabajando con este sistema péro ¿De los demas desconozco?. Ahora no se si me podrias facilitar esa informacion quizas tienes un listado ya perparado o estas mas informado sobre eso. A si estas interezado puedo pasarte el codigo de como averiguar el sistema operativo lo pidemelo y te lo envio al instanste. Saludos... Y gracias por la ayuda anterior. <Giomar>
237
« en: Miércoles 20 de Agosto de 2003, 23:42 »
Como puedo registrar mis OCX o DLL desde VB. Es posible hacer eso
238
« en: Miércoles 20 de Agosto de 2003, 21:51 »
Seria bueno si alguien proporciona mas informacion sobre ello
239
« en: Miércoles 20 de Agosto de 2003, 21:29 »
Agrege a mi proyecto el codigo que me indicas pero no obtuvo frutos. Aqui te dejo el codigo para que lo puedas revisar y poder detectar el error. Dim rsbusca As New ADODB.Recordset Dim sql As String
Private Sub Form_Load() Set rsbusca = New ADODB.Recordset rsbusca.CursorLocation = adUseClient sql = "select * from productos order by nombreproducto " rsbusca.Open sql, cn, adOpenDynamic, adLockReadOnly lista.ListField = "nombreproducto" Set lista.RowSource = rsbusca lista.Refresh Text1.Text = Empty End Sub
Private Sub Text1_Change() If Len(Trim(Text1.Text)) > 0 Then rsbusca.Close rsbusca.Source = "select p.idproducto, p.nombreproducto, p.idcategoría, p.cantidadporunidad, p.preciounidad, c.NombreCategoría from productos p, categorías c where p.idcategoría=c.idcategoría and nombreproducto like '" & Text1.Text & "%' order by nombreproducto" rsbusca.Open If rsbusca.RecordCount = 0 Then MsgBox "El Producto no Existe", vbCritical, "AVISO" Text1.SetFocus Set lista.RowSource = Nothing Else Set lista.RowSource = rsbusca lista.Refresh End If Else rsbusca.Close rsbusca.Source = "select p.idproducto, p.nombreproducto, p.idcategoría, p.cantidadporunidad, p.preciounidad, c.NombreCategoría from productos p, categorías c where p.idcategoría=c.idcategoría order by nombreproducto" rsbusca.Open Set lista.RowSource = rsbusca lista.Refresh End If
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer) Text1.Text = Replace(Text1.Text, Chr(180), Chr(29)) 'Ha tambien probe con el IF y salia el mismo mensaje de error. End Sub
Un saludo..
240
« en: Miércoles 20 de Agosto de 2003, 21:11 »
Bueno eso no era lo que buscaba de todas maneras gracias!
241
« en: Miércoles 20 de Agosto de 2003, 20:33 »
Puedes hacer uso del comando FileCopy sintanxis: FileCopy RutaArchivoOrigen, RutaArchivoDestino Suerte..
242
« en: Miércoles 20 de Agosto de 2003, 20:24 »
En realidad solo en tu base de datos deben tener la tabla que indicas y como ya te lo indico Brroz por medio de instruccion SQL obtendras la informacion que requieres.
243
« en: Miércoles 20 de Agosto de 2003, 20:18 »
Primero: Te entiendo la idea si no me equivoco mi aplicaion se registrara cada vez que se ejecute !No es asi¡, bueno ahora mi duda al respecto es que si al hacer eso a la larga con tantas ejecuciones de la aplicaion no malograria el registro de Windows. y Segundo: Creo que seria mejor que sea una aplicacion dedicada para el registro, bueno por lo que veo aqui tambien surge la misma duda. En conclusion antes que nada mi duda es que si no malograre de alguna manera el regitro de windows. Si eso no ocurre pues adelante.
244
« en: Miércoles 20 de Agosto de 2003, 20:10 »
Solo basta con poner el evento LostFocus del TextBox que deseas el siguiente codigo: text1.text=format(text1.text,"standard") y eso hara que al perder el foco se asigne un formato a lo escrito en el TextBox. ejm: Si en el TextBox escribiste 25 o 25.5 entonces el nuevo resultado sera 25.00 o 25.50, el formato general que se establece es el siguiente 999,999.99 Espero que sea lo que buscabas. Saludos
245
« en: Miércoles 20 de Agosto de 2003, 20:01 »
El de copiar a la carpeta inicio de windows ya lo sabia, pero mi duda va a como poder hacerlo desde VB. ¿De que manera podria alterar el registro de windows y hacer que mi aplicacion cargue desde ahi? o quizas de otra forma pero "reitero que sea segura, por favor". Muchas gracias por tu ayuda. espero lo siguas haciendo.
246
« en: Martes 19 de Agosto de 2003, 21:28 »
Te antemano agradezco tu atencion. He desarrollado diferentes aplicaciones en visual basic pero ahora busco la manera de que mis aplicaciones puedan iniciarse junto con windows. me han dicho que hay varias formas de hacerlo pero el problema es que segun lo que me explican lo veo muy complicado y lo que busco en una forma facil, sencilla y sobretodo segura de poder acerlo. Se que en este foro debe haber alguien que conoce esa forma de hacerlo y le agradeceria mucho que me ayude a aprenderlo. Un Saludo... y nuevamente gracias.
247
« en: Martes 19 de Agosto de 2003, 20:29 »
Disculpame pero no llego a entenderte lo que me quieres decir. En el comentario que me das no veo una solucion para lo he indicado. Si tienes otra idea o puede aclararme mejor la idea que ya me escribistes te lo agradeceria mucho. Un saludo y nuevamente gracias por tu tiempo
248
« en: Jueves 7 de Agosto de 2003, 19:15 »
He notado un problema al trabajar con SQL, por ejemplo he echo una aplicacion donde realizo una busqueda incremental de datos a una tabla algo sencillo si pero la dificultad que encuentro es al colocar en mi TextBox un apostrofe ( ' ). Lo que veo que pasa es de que como VB concatena sus variables asi '" & objeto & "' de alguna manera lo confunde, bueno no se con exactitud. Si alguien sabe como puedo solucionar esto por favor haganmelo conocer. Ademas voy a dejar la aplicacion con el problema. Saudos y de antemano GRACIAS. Giomar...
249
« en: Jueves 7 de Agosto de 2003, 19:15 »
He notado un problema al trabajar con SQL, por ejemplo he echo una aplicacion donde realizo una busqueda incremental de datos a una tabla algo sencillo si pero la dificultad que encuentro es al colocar en mi TextBox un apostrofe ( ' ). Lo que veo que pasa es de que como VB concatena sus variables asi '" & objeto & "' de alguna manera lo confunde, bueno no se con exactitud. Si alguien sabe como puedo solucionar esto por favor haganmelo conocer. Ademas voy a dejar la aplicacion con el problema. Saudos y de antemano GRACIAS. Giomar...
250
« en: Jueves 7 de Agosto de 2003, 18:51 »
Si no me equivoco todos los sistemas operativos tiene el archvo WIN.INI( bueno solo seria cuestion de buscarlo) Al abrir el archivo encontraras un linea que dice LOAD=... Donde estan los ... debes indicar la ruta del archivo ejecutable y nada mas. Otra forma es colocando un acceso directo en el carpeta INICIO y obtendras el mismo resultado. Saludos...
Páginas: 1 ... 8 9 [10] 11
|
|
|