• Jueves 2 de Mayo de 2024, 23:05

Mostrar Mensajes

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 - ebolo

Páginas: [1] 2 3 ... 8
1
Se me olvidado ponerte, para que no te entre en unciclo infinito como dices, dentro del while... wend un rs.movenext.

Saludos.

2
Hola, si lo que quieres es realizar acciones siempre que exista un registro, usa lo siguiente:
Código: Text
  1.  
  2. ...
  3.  
  4. While not rs.eof
  5.    'acciones...
  6.  
  7. wend
  8. ...
  9.  
  10.  

Para saber el recordcount, prueba a moverte al últimoregistro y luego al primerregistro.
Código: Text
  1.  
  2.      ...
  3.      rs.movelast
  4.      rs.movefirst
  5.      msgobx rs.recordcount
  6.      ...
  7.  
  8.  

Y cómo te han comentado, el rs.open no lleva igual, ó te dará error.

Saludos.

3
Visual Basic 6.0 e inferiores / Re: Dejar Boton En Estado Presionado
« en: Miércoles 26 de Julio de 2006, 08:38 »
Hola, podrías usar un CommandButton del componente Microsoft Forms 2.0 Objects Library.
Este si se presiona 2 veces se mantiene presionado, aunque creo sepuede configurar(ésto no lo sé cierto).

Un saludo.

4
Visual Basic 6.0 e inferiores / Re: Letras A Numeros
« en: Sábado 8 de Julio de 2006, 19:55 »
Lo siento Fabrizzio, pero ahora ya sí que me pierdo.  :blink: .
¿Lo que quieres hacer es crearte un código para todas los caracteres?
Saludos.

5
Visual Basic 6.0 e inferiores / Re: Letras A Numeros
« en: Viernes 7 de Julio de 2006, 20:50 »
Hola fabrizzio, usa la instrucción Asc(string), te dará el valor ascii de la letra.

Saludos.

6
Visual Basic 6.0 e inferiores / Re: Sistema: Cheques En Cartera
« en: Sábado 24 de Junio de 2006, 14:39 »
Hola a todos, perdona Jose que me meta por en medio, pero estoy casi seguro que la propiedad .Maxrows no se puede aplicar a un MSFLEXGRID.
Usa la propiedad .ROWS, que te devuelve el nº de filas que tiene el flexgrid.


Un saludo.

7
Visual Basic 6.0 e inferiores / Re: Impresoras En Combobox
« en: Martes 28 de Marzo de 2006, 13:26 »
Hola Erick185, es algo tan sencillo como esto:

Código: Text
  1.  
  2. Private Sub Form Load()
  3.  Dim ctl As Printer
  4.  For Each ctl In Printers
  5.      Me.Combo3.AddItem ctl.DeviceName
  6.  Next
  7.  Set ctl = Nothing
  8. End sub
  9.  
  10. Private Sub Combo3_Click()  'Elegimos impresora
  11.     SetDefaultPrinter (Me.Combo3.List(Me.Combo3.ListIndex))
  12. End Sub
  13.  
  14.  

En un módulo pones:
Código: Text
  1.  
  2. Function SetDefaultPrinter(PrinterName As String) As Boolean
  3. Dim wshNetwork As Object ' New wshNetwork
  4.    On Error GoTo err_SetDefaultPrinter
  5.    Set wshNetwork = CreateObject("WScript.Network")
  6.    wshNetwork.SetDefaultPrinter PrinterName
  7.    Set wshNetwork = Nothing
  8.    SetDefaultPrinter = True
  9. err_SetDefaultPrinter:
  10. End Function
  11.  
  12.  

Para saber que Impresora tienes por defecto, puedes usar esta función:
Código: Text
  1.  
  2. Function GetDefaultPrinter() As String
  3. Dim strDefault As String
  4. Dim lngbuf As Long
  5.     strDefault = String(255, Chr(0))
  6.     lngbuf = GetProfileString("Windows", "Device", "", strDefault, Len(strDefault))
  7.     If lngbuf > 0 Then
  8.        GetDefaultPrinter = Left$(strDefault, InStr(strDefault, ",") - 1)
  9.     Else
  10.        GetDefaultPrinter = ""
  11.     End If
  12. End Function
  13.  
  14.  

Un saludo.

8
Visual Basic 6.0 e inferiores / Re: Inet Y Ftp Imposible!
« en: Sábado 25 de Marzo de 2006, 14:06 »
Hola kipexs, la verdad que no sé porqué, pero puedes intentar poner un Doevents después del Shell, pero viendo otra vez el código veo que el ocip lo sacas de las comillas en el PUT, con lo que lo estás considerando como una variable y en este caso no es.

Código: Text
  1.  
  2. Private Sub Form_Load()
  3. Shell "cmd.exe /c ipconfig /all > C:\ocip.txt", vbHide
  4. Doevents
  5. Inet1.URL = "ftp://ftp.usuarios.lycos.es"
  6. Inet1.UserName = "miuser"
  7. Inet1.Password = "mipass"
  8. Inet1.Execute , "PUT " & "c:\ocip.txt"
  9. End Sub
  10.  
  11.  

Un saludo.

9
Visual Basic 6.0 e inferiores / Re: Problema Con Vba Access
« en: Miércoles 22 de Marzo de 2006, 18:13 »
Hola jpardo84, en principio puedes abrir directamente el recordset sin la declaración de la database; me explico:
Código: Text
  1.  
  2. Dim RS As DAO.Recordset
  3. Set RS = CurrentDb.OpenRecordset("PEDIDOS")
  4.  
  5.  
prueba a ver que pasa.

También mira en las referencias no tengas puesta la referencias Microsoft Activex Data Objects.... antes que la referencia Microsoft DAO 3... Object Library. Es mejor poner poner primero la referencia DAO, ó declarar siempre a que tipo de referencia se refiere DAO ó ADO.

Un saludo.
PD.: esta consulta la deberías haber puesto en el foro de VBA.

10
Visual Basic 6.0 e inferiores / Re: Eliminar Registros En Access
« en: Jueves 2 de Marzo de 2006, 10:33 »
Hola a todos, según tengo entendido eso es lo normal en bd de access, cuando eliminas registros, se eliminan pero el tamaño no disminuye en la misma proporción.
A parte de lo dicho por Del Piero, también lo que puedes hacer es crearte otra bd nueva e importar todo, de esta forma mejora mucho el rendimiento de la misma.

Saludos.

11
Visual Basic 6.0 e inferiores / Re: Implementar Codigo De Barras...
« en: Miércoles 1 de Marzo de 2006, 14:58 »
Hola de nuevo, vamos a ver si soy capaz de explicarte un poco el tema.

El CB que existe en los productos de las tiendas, supermercado..., la mayoría son EAN13. Hay muchos productos que tienen su propio CB, que está 'reservado' en AECOC (www.aecoc.es) y es el mismo para todas las tiendas. Normalmente este EAN13 se compone de 12 dígitos + 1dígito control(que lo coloca el soft que imprime etiquetas), que suele ser el código del artículo. Este sistema suele usarse para aquellos productos que se venden por unidad, es decir, siempre valen lo mismo.
Pero también tu puedes tener tu propio sistema de codificación, es decir, tu puedes generar tu propio EAN13, que se componga, xej.: de CódigoArtículo(7dígitos) + PVP(5dígitos). Este sistema suele usarse para aquellos productos que se venden, xej., por peso, donde cada paquete tiene un valor.
Si vas a un super y te fijas en las etiquetas podrás observar lo que te digo.

Normalmente en un Super, todos lo artículos están codificados, bien con el código del proveedor, bien con el código de la tienda, cadena de super, etc.

Bueno dicho esto, vamos por partes
Citar
1. Como sabran algunos productos como la Coca Cola ya vienen con su
codigo de barras, cuando los pase con el lector de codigo de barras me
mostrara en en el formulario la informacion de la coca cola y mas datos que
necesite? Por ejemplo:
Se esta vendiendo Coca Colas el precio es S/. 1.50 la cantidad es de 2 cuando
pase el lector de codigo de barras me mostrara en el formulario los datos del
producto? y el respectivo precio que tiene o como tomo los datos para
mostrarlos en el formulario porque tiene que mostrar los datos del producto y
el precio y dejar el foco en el campo cantidad para poner la cantidad de
productos para ser ingresado por teclado o no?
Los datos de los artículos deberás tenerlos en una bd.
- En una CoCa, normalmente no pone el precio en el CB. Cuando leas el CB, deberás buscar el precio que le corresponde en la bd y la descripción del artículo, así como otros datos que pueden ser necesarios, por ej IVA,...
- En otros artículos, donde sí pone el precio en el CB, podrías no buscar el precio, pero deberías buscar descripción,...

Citar
2. Asi como hay muchos productos que tienen codigo de barras hay otros que no
supongo que a esos se les tendra que crear su codigo de barras y pegarle una
etiqueta a los productos que no tienen un codigo de barras para poder leerlo
como se hace eso?
  Aquellos que no tengan etiqueta, se la debes de poner tú, con lo que quieras que te salga en la etiqueta.
Puedes usar el OCX, que dejé para sacar etiquetas por impresora. Tú debes de poner 12 dígitos, normalmente código de artículo + precio total del artículo.

Citar
3. Tengo que pegarle a todos los productos tengan o no codigo de barras para
identificar el producto? porque como ya dije en el punto 1 hay productos como
la coca cola que ya tiene su codigo de barras o es suficiente con el que tiene?
  Todos los productos deben llevar etiqueta.
   Todo va a depender de como hagas el sistema. Cuando leas tendrás que diferenciar los que tengan EAN13 de origen de los que les pongas tú.

Citar
4. Que formato debo usar en mi codigo de barras el EAN13 u otros?
la coca cola tiene EAN13 en su codigo de barras?
Puedes usar muchos, pero el más comun es el EAN13.

Citar

Tengo entendido que un lector de codigo de barras se encarga de identificar un producto
No, el lector no identifica nada, quien identifica es el Código de Barras(CB).
Lo que pone en el CB lo podrías escribir tu a mano, en vez de leerlo con el lector, por tanto el lector Sí evita errores. Luego buscas los datos del código leido en la bd.

Si necesitas algo más, ó no entiendes algo lo dices. Pero es más fácil de lo que piensas.
Un saludo :hola:

12
Visual Basic 6.0 e inferiores / Re: Implementar Codigo De Barras...
« en: Martes 28 de Febrero de 2006, 19:56 »
Hola a todos, como bien te ha dicho Sagutxo, sólo tienes que conseguirte un lector que se conecte por PS2, junto al teclado. El lector lo que hace es escribir por tí, lo que lea.

El post donde deje el ocx es:
http://foros.solocodigo.com/index.php?showtopic=13295
y sirve para imprimir EAN13.

Un saludo.

13
Visual Basic 6.0 e inferiores / Re: Moverse En Dao
« en: Viernes 24 de Febrero de 2006, 14:19 »
Hola Radicaled, ya que estas medio empezando con las bd, te aconsejo que aprendas a usar ADO, porque es mucho más rápido el acceso a los datos, tanto cuando tienes que añadir datos como modificarlos.

Por ADO la conexión a bd de access la hago de esta forma:

Código: Text
  1.  
  2.    Dim cn As ADODB.Connection, rs As ADODB.Recordset
  3.    Dim consulta as string
  4.    Set cn = New ADODB.Connection
  5.    Set rs = New ADODB.Recordset
  6.    cn.Open "Provider=Microsoft.Jet.Oledb.4.0; Data Source=c:\turuta.mdb"
  7.    
  8. 'Para Abrir un recordset
  9.    Set rs.ActiveConnection = cn
  10.    
  11.    'para acceder a un campo concreto
  12.    consulta="SELECT CampoNombre FROM tutabla"
  13.    rs.Open consulta
  14.    msgbox rs!CampoNombre
  15.    
  16.    'Usa rs.EOF para saber si No te da resultados una consulta
  17.    if rs.EOF then
  18.       rs.close
  19.    End if  
  20.  
  21. 'Para añadir líneas a una tabla
  22.    consulta="INSERT INTO........."
  23.    cn.Execute consulta
  24.  
  25. 'Para modificar un dato de una tabla
  26.    consulta="UPDATE............"
  27.    cn.Execute consulta  
  28.  
  29. 'Cerramos cn y rs
  30.    rs.close
  31.    cn.close
  32.    set rs=nothing
  33.    set cn=nothing
  34.  
  35.  
Debes tener activada la referencia Microsoft Activex Data Objets 2.8 Library (ó la 2.6, 2.7...)

Buscaté un manual de SQL, que hay muchos, para ver como se hacen las sentencias de SQL, ó aprovecha, como yo, el que viene con el access, y te será más fácil hacer las SQL.

14
Visual Basic 6.0 e inferiores / Re: Formularios De Access En Vb 6
« en: Jueves 16 de Febrero de 2006, 19:08 »
Hola Jonn, te dejo 2 formas distintas de abrir access y formularios, pero que se abra sobre un formulario de VB me da a mí que no va a poder ser. Lo que puedes hacer es que se abra sólo el formulario sin nada más, ni barra de herramientas,..., pero debes configurarlo en la bd de access, más que nada porque es más fácil.
Código: Text
  1.  
  2. Private Sub Command1_Click()
  3.      Dim dbW As Object
  4.      Set dbW = GetObject("C:\...\TuMdb.MDB")
  5.      dbW.DoCmd.OpenForm "TuFormulario"
  6. End Sub
  7.  
  8. Private Sub Command2_Click()
  9.      Dim Oaccess As Object
  10.      Set Oaccess = CreateObject("access.application.8")
  11.      Oaccess.OpenCurrentDatabase ""C:\...\TuMdb.MDB"
  12.      Oaccess.DoCmd.OpenForm "TuFormulario"
  13. End Sub
  14.  
  15.  

Debes tener activada la Referencia específica del access a abrir:
Acces97 - Microsoft Access 8.0 Object Library.
Acces2000 - Microsoft Access 9.0 Object Library.
AccessXP - Microsoft Access 10.0 Object Library ,creo.
Access2003 - Microsoft Access 11.0 Object Library ,creo.

Saludos.

15
Visual Basic 6.0 e inferiores / Re: No Salgo De Una Para Meterme En Otra
« en: Viernes 3 de Febrero de 2006, 19:27 »
Hola angel38, prueba a hacer la sql de esta manera:
SQL = "select Format(TimeValue([Hora1]) - TimeValue([Hora2]),"hh:nn:ss")  as Duracion from Tabla_horas where Usuario = '1'"

donde supuestamente:
- Hora1 y Hora2, son valores de campos de la tabla Duración.
- El '1' es la identificación del usuario; si quieres que sea con una variable, tiene que ser así:
    ....... where Usuario='" & tuvariable & "'"

Yo prefiero usar  -&- para unir cadenas de texto, y el -+- para sumar valores.

Prueba haber si hay suerte.

Saludos.

16
Hola zetaperu, para colorear toda una columna, debes jugar con las propiedades siguientes:
   MSFlexGrid1.SelectionMode=flexSelectionByColumn
   MSFlexGrid1.BackColorSel = vbRed

Y si lo que quieres colorear es una celda, usa la propiedad:
   MSFlexGrid1.CellBackColor = vbred
claro posicionándote antes en la celda a colorear.

Saludos.

17
Visual Basic 6.0 e inferiores / Re: Shell Con Vuelta De Datos
« en: Martes 17 de Enero de 2006, 17:56 »
Hola Roll, hazlo de esta forma:

Citar
Private Const PROCESS_QUERY_INFORMATION = &H400
Private Const STILL_ACTIVE = &H103
Private Declare Function OpenProcess Lib "kernel32" _
(ByVal dwDesiredAccess&, ByVal bInheritHandle&, ByVal dwProcessId&) _
As Long
Private Declare Function GetExitCodeProcess Lib "kernel32" _
(ByVal hProcess As Long, lpExitCode As Long) _
As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long



Sub EsperarShell(sCmd As String)

Dim hShell As Long
Dim hProc As Long
Dim codExit As Long

' ejecutar comando
hShell = Shell(Environ$("Comspec") & " /c " & sCmd, 2)

' esperar a que se complete el proceso
hProc = OpenProcess(PROCESS_QUERY_INFORMATION, False, hShell)

Do
  GetExitCodeProcess hProc, codExit
  DoEvents
Loop While codExit = STILL_ACTIVE

End Sub

Private Sub Command4_Click()
   EsperarShell ("ping 192.168.0.15 >C:\uno.txt")
End Sub

La función Esperarshell, no es mía, pero no me acuerdo de donde la conseguí, o sino pondría su origen. A cada uno sus méritos.
Saludos.

18
Visual Basic 6.0 e inferiores / Re: Grilla Con Combobox
« en: Miércoles 26 de Octubre de 2005, 19:27 »
Hola jodijo5, lo puedes hacer mediante un MSFlexgrid. Hay muchos ejemplo por la red.
Te adjunto uno que tengo guardado, que no sé de donde me lo bajé.

Saludos.

19
VBA / Re: Combobox.text=""
« en: Miércoles 26 de Octubre de 2005, 19:13 »
Hola sndr82 te he dejado una solución por mvp.

Aquí la tienes:
Código: Text
  1.  
  2. Private Sub Command1_Click()
  3.     Me.Combo1.Text = Me.Combo1.List(Me.Combo1.ListCount - 1)
  4. End Sub
  5.  
  6. Private Sub Form_Load()
  7.     For q = 1 To 20
  8.         Me.Combo1.AddItem q
  9.     Next q
  10.     Me.Combo1.AddItem " "
  11. End Sub
  12.  
  13.  
Saludos.

20
Visual Basic 6.0 e inferiores / Re: Tengo Un Programa Y No Logro Descifralo
« en: Lunes 17 de Octubre de 2005, 20:43 »
Hola Jamaicol, si miras el form_load, verá donde le da todas las propiedad al richtextbox, lo que hace es que le da un margen derecho de 7.3 cm, bueno miralo...

Código: Text
  1.  
  2. Private Sub Form_Load()
  3. 'Crea el formulario con todas las cosillas dentro
  4.     'colocacion de el el cuadro de texto
  5.     'margen derecho el tamaño del parrafo o columna
  6.     txtBox.RightMargin = 7.3
  7.     'para que vaya centrada la letra
  8.     txtBox.SelAlignment = 2
  9.     'para que tenga margen a la parte izquierda
  10.     txtBox.SelIndent = 2
  11.     mnuEditDeshacer.Enabled = False
  12.     txtBox.AutoVerbMenu = True
  13.     If SendMessage(txtBox.hWnd, EM_CANUNDO, 0&, ByVal 0&) Then
  14.             mnuEditDeshacer.Enabled = True
  15.             cmdDeshacer.Enabled = mnuEditDeshacer.Enabled
  16.             End If
  17.     txtBox.Top = 0 + tbHerramientas.Height
  18.     txtBox.Left = 0
  19.     '''''''''''''''''''''''''''''''''''''''''''''''
  20.     txtBox.Font.size = 11
  21.     filename = ""
  22.     fullname = ""
  23.     Actualizado = True
  24.     mnuSearchFindnext.Enabled = False
  25.     start = 1
  26. End Sub
  27.  
  28.  

Saludos.

21
Visual Basic 6.0 e inferiores / Re: Lanzar + De 1 Copia Informe De Access
« en: Sábado 1 de Octubre de 2005, 14:37 »
Hola de nuevo, por fin lo he sacado después de 1 tarde y una mañana de pruebas.

El tema consiste en lanzar el informe siempre como AcViewPreview, luego usar la propiedad PrintOut y Cerrar el informe. Más o menos ésto:

IMPRIMIR MÁS DE UNA COPIA DE UN INFORME DESDE VB
-------------------------------------------------------------------
Código: Text
  1.  
  2.     Dim obj As Object
  3.     Dim strReportName As String
  4.    
  5.     Set obj = GetObject("RutaBd")
  6.     strReportName = "NombreInforme"
  7.     obj.DoCmd.OpenReport strReportName, acViewPreview
  8.     obj.DoCmd.PrintOut , , , , nºcopias
  9.     obj.DoCmd.Close acReport, strReportName
  10.  
  11.     obj.Quit
  12.     Set obj = Nothing  
  13.  
  14.  

Saludos

22
Visual Basic 6.0 e inferiores / Lanzar + De 1 Copia Informe De Access
« en: Sábado 1 de Octubre de 2005, 10:53 »
Hola a todos.
Hasta ahora cuando quería lanzar + de 1 copia de un informe de access hacía un bucle y  ya estaba. La impresora estaba conectada a PC directamente.
Pero ahora han cambiado la impresora y han puesto una de red, con lo que se ha hecho ligeramente más lenta la impresión, y la gente se pone nerviosa por tener que esperar 5 segundos.
Claro lo ideal sería lanzar un informe y que salieran tantas copias como queremos. Pero no me sale.
Lo que si puedo hacer es lanzar previsualización del informe y ahí que elijan las copias que quieran, pero claro lo quieren más automático.
Si se os ocurre algo os estaré agradecido.
Saludos.

23
Visual Basic 6.0 e inferiores / Re: Lineas Obligatorias
« en: Sábado 24 de Septiembre de 2005, 10:14 »
Hola a todos, pasaté por aquí:
http://msdn.microsoft.com/library/spa/defa...StringTopic.asp

explica algo sobre ello.

Saludos.

24
Visual Basic 6.0 e inferiores / Re: Imprimir Con .print
« en: Martes 30 de Agosto de 2005, 18:20 »
Hola Usercode, para que te imprima debes finalizar siempre con:
  Printer.EndDoc, ó
  Printer.NewPage

En tu caso quedaría:
printer.CurrentX = 2
printer.currentY = 10
printer.print "Hola Mundo"
Printer.EndDoc


Mira en la ayuda del VB, que te lo explica bien.

25
Visual Basic 6.0 e inferiores / Re: Liberar Puerto Com
« en: Viernes 29 de Julio de 2005, 10:42 »
Hola mindeye, pienso que lo que deberías hacer es abrir el puerto en el momento que va a ser usado y cerrarlo inmediatamente, no mantenerlo abierto siempre, aunque a lo mejor en tu aplicación debas mantenerlo abierto siempre, no sé.
Otra cosa que se me ocurre es cuando te da el error lo cierres (gestión de errores) y vuelvas a abrir con el form que toque.

Saludos no son más que ideas para probar.

Saludos.

Páginas: [1] 2 3 ... 8