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

#1
Si quieres que el programa sea capaz de seguir contando desde el ultimo folio que utilizaste tienes que ir almacenándolo en alguna base de datos. Access supongo que usa. Si es que usa base de datos. Así, cada vez que cargues el programa deberás leer desde la base de datos el ultimo folio usado y listo :D!

No debería ser mas complicado que leer hasta la ultima celda de la tabla que asignes. Luego asignas ese numero al textbox.


Saludos!
#2
Scripting / Re: Delimitadores consecutivos
14 Marzo 2015, 04:03 AM
no entiendo que haces con esta parte del codigo "(desc/actual.txt)" xD. En vez de eso tienes que "tipear" el txt completo para buscar un string en el mismo.

Mira el ejemplo de mas abajo y ve si te puede ayudar en algo.

Código (dos) [Seleccionar]


FOR /F "Tokens=3,7 Delims=|" %%M IN ('Type actual.txt ^|Find.exe /I "BLABLABLA"') DO (
Echo %%M >> Salida.txt
)
)



Espero te sirva, recuerda que es un ejemplo y puede que no te funcione directamente.


Sauludos!!
#3
Cita de: HdM en 29 Enero 2015, 15:33 PM
Hola.

Sin querer desviar el asunto principal del tema...

Utilizando los componentes de acceso a datos correctos, puedes acceder a cualquier db Access, independientemente del formato, vía DAO.

Motor JET
              *Microsoft DAO 3.6 Object Library
                                                             ->Formato 97-2k-2k3

Motor ACE
              *Microsoft office 14.0 access database engine object library
                                                             ->Formato 97-2k-2k3-2k7-2k10

              *Microsoft office 15.0 access database engine object library ( A partir de W7)
                                                             ->Formato 2k7-2k10-2k13


https://msdn.microsoft.com/es-es/library/office/ff965871%28v=office.14%29.aspx#DataProgrammingWithAccess2010_Where

Saludos.

Si probé cambiando los motores, pero tampoco funcionó. Siempre obtuve el mismo mensaje "No se reconoce formato de la base de datos..."

cuando digo "incansablemente", es porque en realidad si busqué mucho xD

Saludos, gracias por el articulo, lo leeré de igual manera.
#4
hola, pucha, aunque no te sirva, puedes tomar la idea de ahí.

Lo que hace el código es leer y tomar los datos de un archivo .xls e insertarlos de forma ordenada en una base de datos .mdb. El problema 3343 es porque el formato de tu base de datos es superior al que puede procesar DAO (o ADO? xD) y es que tiene que estar en formado Office 97, desde 2000 para arriba te dará el mismo error. Busqué incansablemente como hacerlo funcionar con bases de datos mas nuevas, pero no hubo caso.

Saludos!
#5
Hola,

Revisa este codigo, hace lo que necesitas, obviamente tienes que adaptarlo para ti, cambiando algunas variables y/o nombres de archivos.
Debo recalcar que el formato de la hoja de Excel debe ser "plano"; cabeceras y datos.

Código (vb) [Seleccionar]

Ooption Explicit
Dim NewDB As Database
Dim NewTable As TableDef
Dim DBName As String
Dim dbnm As String
Dim db As Database
Dim rs As DAO.Recordset, nofld As Integer, norecd As Integer
Dim J As Long


      Set db = OpenDatabase(App.Path & "\DataAndStuff\" & dbnm)
      Set rs = db.OpenRecordset("BDOfertas")
      Do While Len(ExcelApp.ActiveSheet.Cells(i, 1).Value) <> 0
         J = 1
         rs.AddNew
         Do While Len(ExcelApp.ActiveSheet.Cells(i, J).Value) <> 0
            rs.Fields(J - 1).Value = ExcelApp.ActiveSheet.Cells(i, J).Value
            J = J + 1
         Loop
         rs.Update
         i = i + 1
      Loop



dbnm = nombre de tu base de datos.

Debes crear una instancia para poder usar Excel.

PD: Si hubieses usado la herramienta buscar, hubieses encontrado el post de inmediato, de hecho estaba 10 posts mas abajo que el tuyo :P
#6
Scripting / Re: Problema de Monthy Hall
26 Diciembre 2014, 04:50 AM
Excelente, me ha quedado dando la vuelta como seria en otros leguajes, pero esta muy bien explicado, gracias !:P
#7
Hola, sorry por la respuesta tan tarde, pero aunque si intente de la forma que me dices Silver_axe007 no me funcionó.
Al final lo pude hacer, con un poco de ayuda de Google.

Dejo el codigo por si a alguien mas le sirve.

Código (vb) [Seleccionar]

Ooption Explicit
Dim NewDB As Database
Dim NewTable As TableDef
Dim DBName As String
Dim dbnm As String
Dim db As Database
Dim rs As DAO.Recordset, nofld As Integer, norecd As Integer
Dim J As Long


      Set db = OpenDatabase(App.Path & "\DataAndStuff\" & dbnm)
      Set rs = db.OpenRecordset("BDOfertas")
      Do While Len(ExcelApp.ActiveSheet.Cells(i, 1).Value) <> 0
         J = 1
         rs.AddNew
         Do While Len(ExcelApp.ActiveSheet.Cells(i, J).Value) <> 0
            rs.Fields(J - 1).Value = ExcelApp.ActiveSheet.Cells(i, J).Value
            J = J + 1
         Loop
         rs.Update
         i = i + 1
      Loop

Saludos!
#8
Debes postear el codigo que tienes y lo que se supone que tiene que hacer el programa. Dudo mucho que alguien vaya  a descargar el "source" y correrlo en sus pcs. Obtendrás MUCHA ayuda si posteas tu codigo y lo que tiene que hacer como dije anteriormente.
Saludos.
#9
Hola estimados,

Vengo a solicitar su ayuda para intentar resolver un problema que me tiene de cabeza, literalmente xD!

El tema es "super simple", quiero importar datos desde una planilla Excel a una tabla en Access, PERO no me funciona y no puedo saber porque.

Para intentar esclarecer un poco y me puedan entender, estos son los archivos que uso.

Una planilla Excel, donde los datos están distribuidos en 6 columnas sin formato (no es un archivo CSV). Probé poniendo el mismo nombre de los campos que en la base de datos, pero no funcionó.

168914 asdf 28/11 30/11 4.890 3990
132112 asdf 28/11 30/11 4.890 40% DCTO
149955 asdf 28/11 30/11 4.890 40% DCTO
149956 asdf 28/11 30/11 4.890 40% DCTO
178377 asdf 28/11 30/11 4.890 40% DCTO
178379 asdf 28/11 30/11 4.890 40% DCTO
178380 asdf 28/11 30/11 4.890 40% DCTO
185147 asdf 28/11 30/11 4.890 40% DCTO
197620 asdf 28/11 30/11 4.890 40% DCTO
208424 asdf 28/11 30/11 4.890 40% DCTO


Y la base de datos Access.



Y el código que tengo para hacerlo es el siguiente:
Código (vb) [Seleccionar]

Option Explicit

Private Sub cmdLoad_Click()
Dim excel_app As Object
Dim excel_sheet As Object
Dim db As Database
Dim new_value As String
Dim row As Integer

    Screen.MousePointer = vbHourglass
    DoEvents

    Set excel_app = CreateObject("Excel.Application")

'    excel_app.Visible = True

    excel_app.Workbooks.Open FileName:=txtExcelFile.Text

    If Val(excel_app.Application.Version) >= 8 Then
        Set excel_sheet = excel_app.ActiveSheet
    Else
        Set excel_sheet = excel_app
    End If

    Set db = OpenDatabase(txtAccessFile.Text)

    row = 1
    Do

        new_value = Trim$(excel_sheet.Cells(row, 1))

        If Len(new_value) = 0 Then Exit Do

        db.Execute "INSERT INTO BDOfertas VALUES (" & new_value & ")" ' ACA ES DONDE ME MARCA AL MOMENTO DE MOSTRAR EL ERROR EN TIEMPO DE EJECUCION. (LINEA 34)

        row = row + 1
    Loop

    db.Close
    Set db = Nothing


    excel_app.Quit
    Set excel_sheet = Nothing
    Set excel_app = Nothing

    Screen.MousePointer = vbDefault
    MsgBox "Copied " & Format$(row - 1) & " values."
End Sub

Private Sub Form_Load()
Dim file_path As String

    file_path = App.Path
    If Right$(file_path, 1) <> "\" Then file_path = file_path & "\"
    txtExcelFile.Text = file_path & "TEST.xls"
    txtAccessFile.Text = file_path & "CLLBD.mdb"
End Sub


Y el error que obtengo es el siguiente:


Error '3346' en tiempo de ejecución:

El número de valores de consulta y el número de campos de destino son diferentes.



He intentado con muchos códigos hacer lo que quiero, pero nada parece funcionar, o yo lo estoy haciendo mal. Solo me falta esto para terminar este formulario del proyecto, pero no se como solucionarlo.


Atento a comentarios,
Atte.
Francisko.
#10
Gracias por tu respuesta Shell, pero no eran las comillas. Me faltaba actualizar el RS ¬¬ xD.

Dejo la solucion por si alguien mas le sirve.-
Código (vb) [Seleccionar]

Sub ConsultaFechas()
   
   SqlDos = "SELECT * FROM BDOFertas WHERE F_Desde >= # " & Trim$(txtFechaUno.Text) & " # AND F_Hasta <= # " & Trim$(txtFechaDos.Text) & " #"
   
   Set rs = New ADODB.Recordset
   rs.CursorLocation = adUseClient
   rs.Open SqlDos, cn, adOpenStatic, , adCmdText
   Set DataGrid1.DataSource = rs
   ModificaColumnas
End Sub


Saludos!!