Jump to content

lphant

Members
  • Content Count

    295
  • Joined

  • Last visited


Reputation Activity

  1. Thanks
    lphant reacted to avalencia in Consulta de Access en Excel   
    Hola
    Cada método, sea Execute u Open del Recordset, tiene sus adeptos y sus detractores, creo que es relativamente complicado decir cuál es mejor que el otro y yo diría que más bien lo que hay que ver/saber es cuándo es mejor usar uno u otro.  Ah, eso sí, en casos como el tuyo en donde usar Count, por ejempo, usar Execute tiene alguno dilemas como el que no puede establecerse algunas propiedades al RecorSet, pero ya te lo había comentado.
    Sobre la perdida de datos, no tiene que ver con el método usado, solo hay dos posibilidad: O alguien lo borró o mandaste sentencias SQL que lo borraron. No olvidar que si bien tu usas SQL para extraer datos, también se puede insertar, eliminar, etc.
    Sobre cambiar lo que tienes  ¿por qué? ¿tan lento va? ¿no será cuestión de la PC y/o la red? Sugiero, si ya te es útil lo que tienes, dejarlo así. Eso sí, cuando busques cómo hacer más cosas, elige (de preferencia, creo yo) cuál método usarás y no te compliques viendo "un poco de todo" que eso te va a, cuando menos, marear. Ya si sigues programando, más adelante puedes ir abarcando más cosas.
    Ah, yo por años de trabajo, uso Open del Recordset
    Saludos
    Abraham Valencia
     
  2. Thanks
    lphant reacted to avalencia in Contar registros   
    Hola
    consultaql = "Select count (Estado) from Consulta where Estado ='" & Valores(x) & "' And Fechas Between #03/18/2019# And #03/19/2019#" Abraham Valencia
  3. Thanks
    lphant reacted to avalencia in Contar registros   
    Hola nuevamente
    Como dijiste " tengo que contar con 2 o más condiciones" se entendía que todas juntas, aclarado que no es así, pues debes de usar una sentencia sql por cada conteo pero, ojo, no es necesario abrir y cerrar la conexión, basta tener un bucle y asignar los valores en matriz:
    Sub Contar_Datos() Dim cn As Object Dim datos As Object Dim consultaSql As String Dim conexion As String Dim nRST As Long, x As Long Dim Valores(1 To 3) As String Valores(1) = "CIERRE ROTO" Valores(2) = "Tacon" Valores(3) = "Piel" Set cn = CreateObject("ADODB.Connection") conexion = "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=C:\Users\Desktop\Base.accdb" cn.Open conexion For x = LBound(Valores) To UBound(Valores) consultaSql = "Select count (Motivo) from Consulta where Motivo ='" & Valores(x) & "'" Set datos = cn.Execute(consultaSql) nRST = datos(0) MsgBox Valores(x) & " :" & nRST datos.Close Set datos = Nothing Next x cn.Close Set cn = Nothing End Sub Abraham Valencia
  4. Thanks
    lphant reacted to avalencia in Contar registros   
    Hola
    Creo que las reglas dicen que nuevas consulta se hacen en nuevos post pero, ya que estamos por aquí... 
    Lo primero lo haría así:
     
    consultaSql = "Select count (Motivo) from Consulta where Motivo In ('CIERRE ROTO','Tacon', 'Piel')"
    Sobre lo segundo, tienes errores de concepto, por ejemplo quieres equiparar el campo "Motivo" ¡¡¡a fechas!!! eso es imposible, tendríaque ser así:
    consultaSql = "Select count (Motivo) from Consulta where Campofecha Between #03-04-2019# and #03-10-2019#"
    Ojo con el formato de las fechas, tiene que ser "mm/dd/yyyy".
    Lo del número de semana, pues, no queda claro.
    Abraham Valencia
     
  5. Like
    lphant reacted to avalencia in Contar registros   
    Hola
    Usar Execute tiene alguno dilemas como el que no puede establecerse algunas propiedad al RecorSet como por ejemplo RecodCount. Igual, como estás usando Count en la sentencia SQL, podemos usar un "truco":
    Sub Contar_Datos() Dim cn As Object Dim datos As Object Dim consultaSql As String Dim conexion As String Dim nRST As Long Set cn = CreateObject("ADODB.Connection") conexion = "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=C:\Users\Desktop\Base.accdb" consultaSql = "Select count (Motivo) from Consulta where Motivo ='CIERRE ROTO'" cn.Open conexion Set datos = cn.Execute(consultaSql) nRST = datos(0) MsgBox nRST datos.Close Set datos = Nothing cn.Close Set cn = Nothing End Sub Comentas
    Abraham Valencia
  6. Like
    lphant got a reaction from silver_axe007 in Mejorar con Bucle ( combobox )   
    Muchas gracias.
    Ya di con ello, me llevo todo el dia buscando, probando y modificando pero ya lo tengo jejejee...
    te lo agradezco mucho.
    un saludo,
  7. Thanks
    lphant reacted to silver_axe007 in Mejorar con Bucle ( combobox )   
    Yo lo que he hecho son funciones que sirven para llenar combos...con una tabla de base de datos.. pero podrias adaptarlo...
    En este caso lo que hacia era llenar registros desde una tabla de parametros recursiva , pero quizas si puedes reemplazar el tema de las celdas o  rangos podria ser algo asi ........
    ' se lo llama asi Call llenacombo(Me.cmbgenero, rangoceldas) 'funcion: Sub llenacombo(cmb As ComboBox, rangocarga as range) 'suponiendo dim celda as cell cmb.clear For Each Celda In Hoja3.Range(rangocarga) If Celda.Value <> "" Then cmb.AddItem Celda.Value Else Exit For End If Next End Sub  
     
    Espero te ayude ... 
     
     
  8. Thanks
    lphant reacted to Haplox in Al abrir un Excel se queda mucho tiempo en la pantalla de iniciando   
    O que hayan cambiado la política de apertura de archivos.
    Si ya es difícil adivinar en windows, imagínate en una red corporativa
  9. Thanks
    lphant reacted to Haplox in Error en variable de objeto o bloque whith no establecido (casillas de verificación)   
    No hace falta que los declares como objets. Solo antecede el nombre del formulario
    If Menu.A2= True Then
    End If
  10. Like
    lphant reacted to jggindustrial in Filtrar datos con condiciones marcadas en userform   
    Hola, te subo archivo con los que requieres, no he usado formulario y solo controles con macros. 
    Filtrado_con_UserformJGG.xlsm
  11. Thanks
    lphant reacted to Manuel_Mendoza in No se actualizan los datos de la pagina 1 al abrir el formulario multipagina   
    A como lo veo, lo único que necesitas es agregar Label2 = Now en initialize; ya que por como lo tienes solo se calcula la hora al momento de un evento change. Por eso al abrir la forma se queda con el texto por default.

  12. Thanks
    lphant reacted to Antoni in No se actualizan los datos de la pagina 1 al abrir el formulario multipagina   
    Solución 1:
    Private Sub UserForm_Initialize() MultiPage1.Value = 0 MultiPage1_Change End Sub  
    Solución 2:
    Private Sub UserForm_Initialize() MultiPage1.Value = 1 MultiPage1.Value = 0 End Sub  
  13. Thanks
    lphant reacted to Haplox in Selecionar un rango y añadir uno celda mas   
    Creo que te estas liando un poco . Te dejo un ejemplo. Dos cosas para que funcione
    Puedes tener tantas tablas como quieras
    Todas deben estar a la misma altura (fila)
    Entre tablas siempre debe haber la misma separacion
    Ejemplo.xlsm
  14. Thanks
    lphant reacted to Haplox in Selecionar un rango y añadir uno celda mas   
    Mira a ver si te sirve asi @lphant
    Sub
    Sub seleccion() Dim Uf As Long, Uc As Long Uf = Range("A" & Rows.Count).End(xlUp).Row Uc = Cells(5, Columns.Count).End(xlToLeft).Column + 1 Range(Cells(5, "A"), Cells(Uf, Uc)).Copy End Sub  
  15. Thanks
    lphant reacted to Gerson Pineda in Ayuda con macros en excel 2013   
    Hola!
    Viendo tu macro, tienes un fallo de estructura, no puedes oculta hoja y después tratar de seleccionarla [.Select]
    Lo demás pues parece no alterar nada, por otro lado, ese efecto que usas, debes ponerle algún tiempo de espera, para que pueda ser visualizado, para ello puedes probar con application.wait 
    Ojo: tu debes tener muy claro, sobre el uso de cada macro o programación que te han proporcionado, y estudia cada linea de código, pues las versiones, poco tienen que ver, pues VBA, ha sido poco actualizada [digamos que casi nada en años]
     
    Saludos
  16. Thanks
    lphant reacted to torquemada in Pregunta sobre Formula número de semana   
    Hola @lphant. Saludos @sergio.
    Un poco de información.
    NUM.DE.SEMANA
    Existen dos sistemas que se usan para esta función.
    Sistema 1    La semana que contiene el 1 de enero es la primera semana del año y se numera como semana 1.
    Sistema 2    La semana que contiene el primer jueves del año es la primera semana del año y se numera como semana 1. Este sistema es la metodología especificada en ISO 8601, que generalmente se conoce como el sistema de numeración de semanas europeo. 
    Tipo_retorno
    La semana empieza el
    Sistema
    1 u omitido
    Domingo
    1
    2
    Lunes
    1
    11
    Lunes
    1
    12
    Martes
    1
    13
    Miércoles
    1
    14
    Jueves
    1
    15
    Viernes
    1
    16
    Sábado
    1
    17
    Domingo
    1
    21
    Lunes
    2
    Saludos.  
  17. Thanks
    lphant reacted to Sergio in Pregunta sobre Formula número de semana   
    @iphant, el Tipo_devuelto sólo sirve para devolver un número diferente para el mismo día de la semana.
     
    En la mayoría de los casos, con los valores 1 ó 2 es más que suficiente. Los demás Tipo_devuelto yo los utilizo cuando no puedo modificar el resultado que quiero comparar con DIASEM.
  18. Like
    lphant got a reaction from Pirtrafilla in Enviar mail con rango de celda   
    Ya sé porque no me funciona la línea/instrucción "ActiveWorkbook.EnvelopeVisible = True", es porque tengo versiones diferentes de Excel y Outlook.
    En el enlace que has pasado viene otra opción sin esa línea
    muchas gracias.
  19. Thanks
    lphant reacted to Pirtrafilla in Enviar mail con rango de celda   
    Hola que tal. Siento no te funcione. Si encuentras el por qué no te funciona con la versión 2007 te agradezco lo hagas saber. Por ahora este enlace me ha parecido interesante, y lo mismo te da algo más de luz. Eso sí, está en ingles, yo lo he traducido con el Chrome para entenderlo mejor.
    http://www.rondebruin.nl/win/s1/outlook/bmail3.htm
    Mi versión es 2013 y no puedo probar qué falla, sino le dedicaría tiempo a ayudarte.
    Lo siento, y suerte.
    Moisés.
  20. Like
    lphant got a reaction from Pirtrafilla in Enviar mail con rango de celda   
    Con lo que sea te cuento
    Un saludo,
  21. Like
    lphant got a reaction from Pirtrafilla in Enviar mail con rango de celda   
    Muchas gracias @gerson pineda.
    Esta muy chulo pero para lo que necesito no me vale, solo manda la información de una celda y yo necesito que me mande un rango.
    Pero me lo guardo :)
    Muchas gracias @Pirtrafilla pero no me funciona, esta macro contiene la linea "ActiveWorkbook.EnvelopeVisible = True" que no funciona en excel 2007.
     
    Seguire buscando alguna solución ( acepto sugerencias ;P) ).
    Un saludo,
     
  22. Thanks
    lphant reacted to Gerson Pineda in Enviar mail con rango de celda   
    Saludos a ambos
    Aquí hay aporte, puede que te sirva, es de nuestro amigo @AlexanderS
     
  23. Thanks
    lphant reacted to Pirtrafilla in Enviar mail con rango de celda   
    Hola @lphant, no soy ningún experto pero te he adaptado tu archivo desde uno que utilizo yo para un programa que tengo.
    A ver si te sirve o al menos te ayuda en lo que quieres.
    Moisés.
     
    Correo.xlsm
  24. Like
    lphant got a reaction from Haplox in Error al copiar hoja a otro libro   
    Muchas gracias.
    Al final lo he conseguido solucionar con la siguiente linea :)
    "Application.DefaultSaveFormat = xlOpenXMLWorkbook"
    Un saludo,
  25. Thanks
    lphant reacted to Haplox in Error al copiar hoja a otro libro   
    Puffff... Si el problema es ese, entonces no sé qué decirte. Hace casi un siglo que deje esas versiones y, la verdad, no sé cómo funcionan en este tema. Te djo el mismo archivo guardado en "xlsb" y en fomato 2003/2007, a ver si así te funciona.
    Pero es que el código es tan sencillo, que solo tienes que abrir un nuevo fichero en tu excel y copiar el código y ya guardarlo. Los libros habilitados para macros en 2003/2007 creo recordar que eran también directamente "xls"
     
    Sub Copiar_Hoja_A_Otro_Libro() mio = ActiveWorkbook.Name Workbooks.Add otro = ActiveWorkbook.Name Workbooks(mio).Activate ActiveSheet.Copy After:=Workbooks(otro).Sheets(Sheets.Count) End Sub  
    Copia de Copia de HOLA-2.xls
     
    Copia de Copia de HOLA-2.xlsb
×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png