Saltar al contenido
View in the app

A better way to browse. Learn more.

Ayuda Excel

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Vba Excel - Access error: valor BOF - EOF

publicado

Hola a tod@s

De antemano agradecer por su tiempo en leer este tema que me complica.

La siguiente macro se conecta a una base de datos de Access, realiza la consulta, me extrae la primera linea (encabezado); pero no el resultado. Aparece un mensaje de error " El valor de BOF o EOF es True, o el actual registro se eliminó; la operación solicitada requiere un registro actual" cuando esta en la siguiente linea: "Recordset.MoveFirst" . Hasta donde pude observar el problema esta en LIKE '801-??-88????-???'  ya que si no tomo en cuenta esa parte la informacion extrae sin problemas. He intentado reemplazarlo con LIKE '801-**-88****-***' y de otras formas y siempre me da el mismo error. 

Sub ExportSystemDSK()

'Unload UserForm3
Application.ScreenUpdating = False

Dim conexion As Object
Dim cadenaConexion As String
Dim consulta As String
Set conexion = CreateObject("ADODB.connection")

	cadenaConexion = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\Srvmultiem\mgalpon\BODEGA-DSK\A2021\INGRESOS2021.mdb"
    
    Linea17 = "SELECT STOCKS.CODIGO, SUM(STOCKS.SALDOINICIAL + STOCKS.ENTRADA - STOCKS.EMPACANDO - STOCKS.[SALDO DISPONIBLE] - STOCKS.SALIDA) AS [(P)R Cont 88], SUM(STOCKS.[SALDO DISPONIBLE]) AS [(P)D Cont 88] " & Chr(10)
    Linea18 = "FROM STOCKS " & Chr(10)
    Linea19 = "WHERE STOCKS.ESTADO = ""E"" AND STOCKS.ZETA LIKE '801-??-88????-???' "& Chr(10)
    Linea20 = "GROUP BY STOCKS.CODIGO"
    Debug.Print Linea17 & Linea18 & Linea19 & Linea20
    consulta = Linea17 & Linea18 & Linea19 & Linea20

    conexion.Open cadenaConexion
    Set Recordset = conexion.Execute(consulta)
    columnas = Recordset.Fields.Count

    For I = 0 To columnas - 1
    Cells(1, I + 1) = Recordset.Fields(I).Name
    Next I
    'Pegamos los datos de la tabla en la nueva hoja
    Recordset.MoveFirst
    Range("A2").CopyFromRecordset Recordset
    'Damos formato a las columnas, ajustando contenidos
    Recordset.Close
    Set Recordset = Nothing
    conexion.Close
    Set conexion = Nothing

Espero haberme hecho entender.

 

Saludos

Featured Replies

publicado
  • Autor

Hola a tod@s

Pensé haber intentado lo suficiente, no fue así.

Leyendo en otros foros lo resolví con lo siguiente

Reemplazo el comodín ? por % o _ (subrayado)

 LIKE '801-??-88????-???' por LIKE '801-%%-88%%%%-%%%' o LIKE '801-__-88____-___'

Link que me ayudo : https://stackoverflow.com/questions/6037290/use-of-like-works-in-ms-access-but-not-vba

Al parecer el operador Like de Vba Excel con respecto al operador Like de Access trabajan distinto con respecto a los comodines.

Doy terminado el tema

Saludos

 

 

 

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.