Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - FranciskoAsdf

#11
Lo mejor que puedes hacer es grabar un macro en Excel y ahí hacer lo que quieres hacer.  Para editar el macro solo presionas Alt+F8 y pones editar.

Saludos.
#12
Estimados, buenas tardes (dias, noches, etc)

Hoy vengo a solicitar su ayuda para hacer un filtro a un DataGrid que me esta quebrado la cabeza xD.

Uso el siguiente codigo para cargar los datos al DataGrid:

Código (vb) [Seleccionar]

Sub Conexion()
   Set cn = New ADODB.Connection
   cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\DataAndStuff\cllbd.mdb;Persist Security Info=False"
   Set rs = New ADODB.Recordset
   rs.ActiveConnection = cn
   rs.CursorLocation = adUseClient
   rs.CursorType = adOpenDynamic
   rs.LockType = adLockOptimistic
   rs.Source = "Select * From BDOfertas"
   rs.Open
   
End Sub


Hasta ahí todo bien.
Ahora, lo que quiero hacer es (con dos TextBox y un CommandButton) un filtro por rango de fechas. PERO (¬¬) no me funciona y no me arroja ningún error ni nada D:.

Para hacer el filtro tengo el siguiente codigo:

Código (vb) [Seleccionar]

Sub ConsultaFechas()

   SqlDos = "SELECT * FROM BDOFertas WHERE F_Desde > " & txtFechaUno.Text & " And F_Hasta < " & txtFechaDos.Text & ""
   Set rs = New ADODB.Recordset
   rs.CursorLocation = adUseClient
   rs.Open SqlDos, cn, adOpenStatic, , adCmdText

End Sub


Se supone que ahí debería filtrar solo ese rango de fechas, pero no me funciona, no se porque, y como dije antes, tampoco me da ningún error. Solo no filtra.

Si alguno de uds me pudiese ayudar con esto. En realidad nunca he sido bueno con las consultas xD.

Saludos y gracias de ante mano!.

PD: Probe con RS.Update al final del Sub, pero me da el error: "El recorset actual no permite actualizaciones asdf"
#13
Gracias Elektro!, siempre aportando códigos útiles.!

Saludos y se guarda en la biblioteca!!!
#14
Bueno en realidad para empezar deberías grabar un macro haciendo lo que quieres que haga el programa.

No se, por ejemplo empieza grabando mientras haces la formula en el cuadro B10, etc.

Lo del combobox "no" es muy difícil, solo debes llenar los meses al abrir la planilla y asignarle un macro a cada mes.

Saludos!
#15
Debes saber el maximo de tiempo que procesara el progresbar. Por ejemplo, si dices que el tiempo máximo lo tomas de un textbox, entonces debería ser

Código (vb) [Seleccionar]

ProgressBar1.Maximum = Val(Text1.Text)


El Valor inicial del PB debes hacerlo en el FormLoad(en verdad no estoy seguro como funciona el PB en vb2012)

Después debes sumar el valor inicial por 1 hasta que llegue al valor final.

Código (vb) [Seleccionar]

Do While Not Timer1.Stop
ProgressBar1.Value = ProgressBar1.Value + 1
Do Events ' no estoy seguro si esta sentencia funciona en VB2012
Loop
'asdf


Espero que esto te de alguna idea, dejare un código que uso para hacer una carga en una pantalla de inicio. Debes tener en cuenta que esto esta hecho en VB6.0

Código (vb) [Seleccionar]

Private Sub Form_Activate()
  Set rs = LoadRecordSet("SELECT * FROM CLLDB ORDER BY Material")
  ProgressBar1.Max = rs.RecordCount
  ProgressBar1.Value = 0
  Do While Not rs.EOF
     ProgressBar1.Value = ProgressBar1.Value + 1
     DoEvents
     rs.MoveNext
  Loop
  Form6.Show
  Unload Me
End Sub


Código (vb) [Seleccionar]

Private Sub Form_Load()
  ProgressBar1.Min = 0
End Sub


Saludos.
#16
Hola!,

Funcionó MUCHAS GRACIAS!, por una tontera no me funcionaba xD. Hasta había usado API para hacerlo, pero mejor asi ya que es mas rápido y fácil :D!

Gracias de nuevo y saludos!!
#17
Hola! :D, he vuelto, con mas preguntas xD.

Directo al grano a ver si alguien me puede ayudar T_T,

Tengo un formulario en donde proceso un archivo Excel (esto me sabe a Déjà vu xD), todo bien, pero quiero que al terminar todo el proceso se abra el archivo para poder seguir usándolo, pero (siempre un pero ¬¬) no me resulta abrirlo, me aparecen una serie de errores antes de abrir el primero archivo Excel de la carpeta y NO el que estoy procesando.

Este es el código que uso para abrir el archivo:

Código (vb) [Seleccionar]

Shell(RutaExcelExe & " " & InvFilePath)

Donde:

RutaExcelExe contiene la ruta donde esta instalado MSExcel.


C:\Archivos de Programa\Microsoft Office\Office12\Excel.exe


InvFilePath contiene la ruta completa del archivo que estoy procesando. La ruta que contendrá esta variable puede variar (valga la redundancia) ya que el archivo puede ser tomando desde cualquier parte desde un CommonDialog.

Los errores que obtengo son los siguientes

No se encontró "C:\Documents.xlsx" bla bla bla
No se encontro "and.xlsx"
No se encontro "Settings\panxin\escritorio\ProyectoAsdf\XLSX's\.xlsx"
No se encontro "TEST\Copia.xls"
No se encontro "(2).xlsx"


Lo intente cambiando el comando de la siguiente forma, pero  con comillas ya no toma las variables como variables y si como la ruta y el nombre del archivo, obteniendo el error
Código (vb) [Seleccionar]

Shell("RutaExcelExe" & " " & "InvFilePath")



"No se encuentra el archivo "InvFilePath"" ¬¬


Así es que es por esto que vengo a solicitar vuestra ayuda a ver si alguien me puede guiar :D!

Saludos y gracias de ante mano :D!


#18
Lo hice, pero no de esa forma, si no, usando API, por lo menos en mi pc funcionó xD.

Dejo acá como lo hice :D!

Código (vb) [Seleccionar]

Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hkey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hkey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hkey As Long) As Long
Private Const HKEY_CURRENT_USER = &H80000001
Private Const REG_DWORD = 4
Dim nBufferKey As Long
Dim nVal As Long


Código (vb) [Seleccionar]

Private Sub Form_Load()
    ExcelVersion = ExcelApp.Version
    nVal = 1
    RegOpenKey HKEY_CURRENT_USER, "Software\Microsoft\Office\" & ExcelVersion & "\Excel\Security", nBufferKey
    RegSetValueEx nBufferKey, "AccessVBOM", 0, REG_DWORD, nVal, Len(nVal)
    'MsgBox "Sandbox Mode Changed", vbInformation, "Sandbox"
    RegCloseKey nBufferKey
   mibd.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\DataAndStuff\cllbd.mdb;Persist Security Info=False"
   PB1.Min = 0
   Open App.Path & "\DataAndStuff\OrdenPlanillaInventario.txt" For Input As #1
   Do Until EOF(1)
      Line Input #1, Linea
      Total = Total + Linea + vbCrLf
   Loop
   Close #1
   Label1.Caption = "NOTA IMPORTANTE:" & vbNewLine & "El archivo debe ser generado como ""HOJA CALCULO COSTE"" o el sistema dará ERROR."""
   'ExcelAccessVBOM
End Sub


Saludos, y gracias!
#19
Y que tipo de datos es el campo en el que estas tratando de escribir?

Esos errores son casi siempre porque intentas escribir un valor Numero en un campo de tipo Cadena.

Fijate que los tipos de datos que quieres escribir sean todos iguales en los campos de la BD, el TextBox.

Saludos.

#20
Hola, muchas gracias por tu respuesta, super bien explicado -y lo mejor- en pocas lineas xD

Pero como no todo puede ser perfecto, me da un error en tiempo de ejecución..


Ahora solo intento saber que valor tiene la clave para modificarla si es necesario o no.

Y lo hice así:

Código (vb) [Seleccionar]

Private Sub ExcelAccessVBOM()
ExcelVersion = ExcelApp.Version
Set FakeRegedit = CreateObject("Wscript.Shell")
ValorReg = FakeRegedit.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Office\" & ExcelVersion & "\Excel\Security")
MsgBox ValorReg
Set FakeRegedit = Nothing
End Sub


Y la llamo desde Form_Load(), pero al momento de cargar me sale el siguiente error:

"No se pudo abrir la clave del registro "HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Security" para leerla"

Revise la clave varias veces, e incluso la copie directo del Registro, pero nada. Probé cargando directamente la función desde el Form_Load(), pero me da el mismo error.

E de agregar que tengo todos los permisos necesarios para leer y/o modificar el registro.

Si fueras tan amable o alguien mas me guiarme porfavor xD.

EDIT: El tipo de variable de ValorReg es Integer.