none
Archivo de solo lectura RRS feed

  • Pregunta

  • Hola,

    El código siguiente actualiza una tabla en excel, pero en la línea con asteriscos, me duplica un archivo de solo lectura de la plantilla donde tengo la tabla; me explico: Si el archivo de la plantilla se llama: datos.xlsx, me crea un archivo datos.xlsx (solo lectura) y los datos entonces caen en el segundo archivo cuestión que no debería pasar.

    '---------------------------------
    Sub ActualizarProducto()
      Dim Connection As ADODB.Connection
      Dim ConnectionString As String
       
      ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & _
                         ";Extended Properties='Excel 12.0 Xml';"
      'Defino la tabla  
      Call DefinirRango("PRODUCTOS", "A1:H", "TbProductos") 'hoja, rango, nombretabla
      '------
      Dim Sql As String
     
      Sql = "UPDATE [TbProductos] SET PRODUCTO='" & txtProd & "', SERIAL='" & txtSerial & "', PRECIO='" & txtPrecioProd & "', STOCK_MINIMO='" & txtStockMin & "', EXISTENCIA_INICIAL='" & txtExistenciaI & "' WHERE ID_PROD=" & txtIdProd
    Debug.Print Sql, Chr(13); ConnectionString
     
      Set Connection = New ADODB.Connection
      Call Connection.Open(ConnectionString) ******
       
      Call Connection.Execute(Sql, , CommandTypeEnum.adCmdText Or ExecuteOptionEnum.adExecuteNoRecords)
     
      Connection.Close
      Sql = Empty
      Set Connection = Nothing
    End Sub
    '---------------------

    También me ha ocurrido cuando combino correspondencia entre word y excel con (VBA) en  esta linea:

    ---objWord.ActiveDocument.MailMerge.OpenDataSource Name:=wBase, Connection:="Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=wBase;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Ty", SQLStatement:="SELECT * FROM" & wHoja, SQLStatement1:="", SubType:=wdMergeSubTypeAccess-

    He dejado esta misma consulta en varios foros y muchas paginas pero al parecer no hay casos así: ¿alguna sugerencia?

    Según la página de microsoft puede ser que el office no está licenciado o no está actualizado. Uso office 2019, con win 10, pero no veo la relacion.

    Gracias, por anticipado
    viernes, 5 de marzo de 2021 12:50

Todas las respuestas

  • Según la página de microsoft puede ser que el office no está licenciado o no está actualizado. Uso office 2019, con win 10, pero no veo la relacion.

    No tengo respuesta para tu pregunta principal, pero sí te puedo decir que esto último que mencionas  no tiene por qué tener ninguna influencia. El proveedor ACE funciona por sí solo aunque no tengas Office instalado en la máquina. Si no hace falta que esté Office instalado, tampoco se necesita que tengas una licencia.

    viernes, 5 de marzo de 2021 15:22
  • Hola, Alberto Poblacion, ¡Gracias por tu tiempo!. He estado buscando en varios foro de office y de Excel y no encuentro nada. Además, ahora no solo se duplica la plantilla, si no que también se duplica el complemento de Excel y lo guarda en la Carpeta de Documentos; (cuando esto pasa dice que no se puede usar el complemento por que es de solo lectura) incluso he aislado la plantilla, y la parte del complemento que hace ese proceso y sigue pasando lo mismo. Esto se pone mas peculiar aun, ya que no tengo ningún código de como workbook.open o workbook.saveAs, en el complemento. La verdad es que estoy en ascuas por este inconveniente. Tienes alguna otra sugerencia, por lo cual sucede es problema? Saludos desde Colombia.
    lunes, 8 de marzo de 2021 14:21
  • No veo ninguna razón aparente para que te ocurran estos problemas. Al menos desde el punto de vista del código cliente, que es bastante normal. No hace nada a través de la conexión OleDb que resulte fuera de lo común o que deba tener consecuencias inesperadas como las que mencionas. Tal vez se dé alguna circunstancia que no sea evidente desde el punto de vista del código, tal como algún parámetro de configuración del Excel, o que el programa invocante tenga distintas credenciales y no pueda acceder en escritura a la ubicación original, o algo por el estilo. No digo que esté pasando esto, es solo un ejemplo de algo que si pasase no sería evidente con solo examinar el código fuente. Tal vez sea buena idea plantear el caso en alguno de los foros de usuarios de Excel, en lugar del foro para desarrolladores, por si acaso hubiera algún parámetro de configuración que pueda afectar a este comportamiento.
    lunes, 8 de marzo de 2021 14:41
  • Bueno, a desempolvar los arrays, Muchas gracias, Alberto Poblacion y Bendiciones.
    lunes, 8 de marzo de 2021 23:11