[Acceso] Escribir en una tabla SAGE a través de ODBC

frugierpat Mensajes publicados 4 Estado Miembro -  
 Houssem86 -
Hola,

soy novato en el uso de Access.
Debo escribir datos de un formulario de Access en una tabla SAGE línea 100 vinculada por ODBC.

Quiero escribir datos en la tabla DOC_ENTETE.
No sé cómo hacerlo.

Gracias por iluminarme.

¿Se pueden utilizar recordset? ¿DAO?
Configuración: XP Pro Access 97

27 respuestas

  • 1
  • 2
frugierpat Mensajes publicados 4 Estado Miembro 1
 
Tu mensaje no me tranquiliza...

¿Y un controlador ODBC de línea 500 podría permitir un acceso de escritura?

Gracias
3
L1L1 Mensajes publicados 8 Estado Miembro
 
¡Hola!

¿Qué es lo que hay en la línea 100?

¿SQL?

¿Propietario?

Pues una 100 "proprietario" no tiene acceso de escritura a través de su controlador ODBC :o((
0
frugierpat Mensajes publicados 4 Estado Miembro 1
 
Hola,

se trata de una base propia, pero sé que se puede escribir en ella. Nuestro proveedor de informática nos ofrecía una solución (demasiado cara). Es posible, pero no sé cómo.

Gracias
frugierpat
-1
L1L1 Mensajes publicados 8 Estado Miembro
 
¡Hola!

Bueno, en realidad, lo que no es posible es hacerlo con el controlador ODBC vendido por Sage al cliente final...
Quizás los distribuidores tengan herramientas más potentes, ¿eh?

Saludos,
-1
L1L1 Mensajes publicados 8 Estado Miembro
 
¡Hola!

Lo siento por no poder tranquilizarte, pero... no :o((

El controlador de la línea 500 también es un controlador de solo lectura.

¡No hay forma de reemplazar/actualizar los datos!

Las últimas versiones (100, 1000...) son versiones de "Sql Server" y allí (casi) todo está permitido...

¿Cuál es tu proyecto? Quizás haya otra opción...

Con cariño,
0
frugierpat Mensajes publicados 4 Estado Miembro 1
 
Hola,

He encontrado una solución, no sé si es muy limpia ya que no soy programador de formación:

Dim Connection As Connection
Dim wrkODBC As Workspace
Set wrkODBC = CreateWorkspace("Name", "User", "Password", dbUseODBC)

Set Connection = wrkODBC.OpenConnection("ODBC;DATABASE=name;UID=User;PWD=Password;DSN=Test Connection")
Set rs2 = Connection.OpenRecordset("UPDATE F_DOCENTETE SET DO_COORD04 = '" & Left(TxtRecepisse.Value, 8) & "' WHERE DO_TYPE = 3 and DO_PIECE = '" & Left(TxtBLencours.Value, 8) & "'", dbOpenDynaset)
Do While rs2.StillExecuting
Debug.Print " [en curso de ejecución...]"
Loop

Connection.Close


Aún con el documento abierto en SAGE, no tengo conflictos. Solo se trata de una escritura en campos libres.

Estoy probando y volviendo a probar, pero por ahora funciona.

Saludos,

Patrick
-1
ppa Mensajes publicados 258 Estado Colaborador 65
 
Hola Frugierpat,

Para escribir en las tablas de la base de datos cBase, considerada propietaria, es indispensable utilizar el controlador Odbc de Sage.

Este controlador específico permite gestionar automáticamente los conflictos de acceso simultáneo (lock, unlock en los registros y archivos) y se encarga de los vínculos entre las tablas para asegurar la coherencia de los datos.

Por ejemplo, al crear un movimiento en F_DOCENTETE y F_DOCLIGNE, el controlador gestiona automáticamente los stocks, lo cual es particularmente complicado en la línea 100.

Aun bajo SQL, aunque se podría escribir directamente en la base, se recomienda encarecidamente utilizar este controlador Odbc.

Por ejemplo, he realizado una interfaz automática que integra en la gescom los pedidos recibidos continuamente a través de un sistema específico de farmacia.
0
francois
 
Estoy escribiendo también una aplicación que escribe en la gescom 100 sql v12
sin problemas de código, pero es imposible que dos puestos trabajen al mismo tiempo en la misma tabla de Sage (docligne), incluso en solo lectura con los controladores ODBC.
¿Alguna idea?

Gracias por responderme por correo

Hasta pronto
0
paty Mensajes publicados 44 Estado Miembro
 
¡Hola PPA!

¡Hola Foro!


Estoy en la misma dificultad, trabajo con Cbase y quisiera extraer datos de SAGE para insertarlos en una base de datos montada en MySQL (y viceversa)

Como saben, cBASE es propietario por lo que necesito un ODBC para poder manipular las diferentes tablas de SAGE

Gracias por informarme sobre cómo descargar un ODBC compatible con SAGE 100 (versión 15)

James .........
0
ppa Mensajes publicados 258 Estado Colaborador 65 > paty Mensajes publicados 44 Estado Miembro
 
Hola Paty

Tienes toda la razón en que Sage en base propietaria requiere un controlador ODBC para acceder a los datos tanto en lectura como en escritura.

El controlador ODBC de Sage no solo proporciona una interfaz de acceso, sino que también garantiza controles de coherencia indispensables para la integridad de la base de datos Cbase. Por lo tanto, el controlador ODBC no está disponible para descarga libre como podría ser un MySQL, ya que integra reglas de negocio específicas para las aplicaciones desarrolladas por Sage.

El controlador ODBC Sage L100 (también compatible con L30) se comercializa, por lo tanto, a través de los distribuidores autorizados de Sage al precio público de 300 €HT, un precio que no ha cambiado en varios años a pesar del enriquecimiento de las reglas de negocio.

Espero haber respondido a tu solicitud.

Cordialmente,

Phil
--
La sabiduría no es un don. Se aprende, pacientemente, escuchando a quienes nos rodean y reflexionando, a posteriori, sobre las cosas. Así que convirtámonos en sabios.
0
marcelin
 
Je suis désolé, mais je ne peux pas vous aider avec ça.
0
ppa Mensajes publicados 258 Estado Colaborador 65
 
Buenas noches Marcelin, buenas noches el Foro,

No domino Access, pero aquí está el método para conectarse a través de Excel. En la gestión de fuentes de datos ODBC, después de haber instalado el controlador ODBC de Sage, en la pestaña "Fuentes de datos de sistema", botón "Agregar", seleccionar el controlador "Sage Gestión Comercial". Nombrar la fuente de datos (por ejemplo: GC_TEST), luego el botón "Abrir", seleccionar el archivo contable (por ejemplo: C_TEST.MAE), segundo botón "Abrir", seleccionar el archivo Gescom (por ejemplo: G_TEST.MAE). Validar el enlace ODBC.

En Excel, "Datos", "Datos externos", "Crear una nueva consulta. Ms Query debe estar instalado y la ventana da acceso a la lista de enlaces ODBC, seleccionar GC_TEST.
Si la base de datos Sage está protegida por contraseñas, ingresar los elementos solicitados. Ms Query abre la base y ofrece las tablas y campos.

Para Windev, usar la función

SqlConnecte("GC_TEST",REQ1,"","ODBC")
cCommande = "select * from F_DOCENTETE where ...)
Sql Excecute(REQ2,cCommande)

Antes de salir de la aplicación, ejecutar "SqlDeconnecte(REQ1)

La documentación de Windev está bien realizada y todo está explicado.

Ánimo

Phil
-1
rob1f
 
Bonjour, je souhaiterais également faire une interface Windev qui puisse accéder à la BDD de Sage gestion commerciale 100. Il faut en fait que je génère des fichiers sous norme EDI. Je n'ai pas le driver ODBC, mais j'aimerais être sûr de pouvoir faire tout ce dont j'ai besoin avant de l'acheter. Pouvez-vous me confirmer qu'avec ce driver j'ai accès en écriture/lecture à la totalité de la base Sage ?
Une personne pourrait m'envoyer ce driver pour que je fasse un essai ?

Merci d'avance.
0
ppa Mensajes publicados 258 Estado Colaborador 65 > rob1f
 
Buenas noches Rob1f, buenas noches al Foro,

El controlador ODBC que permite acceder a las bases de datos de Sage es un controlador Simba. Proporciona acceso a la totalidad de las bases de datos en lectura y escritura, preservando la integridad de los datos. Por ejemplo, no es posible generar una consulta DELETE sobre un artículo si este último tiene stock, números de serie o de lote o si está en movimiento en algún documento. Sin embargo, el controlador asegura por sí mismo la coherencia de la información (ejemplo: para una consulta de creación de un movimiento de entrada de stock, verifica si el artículo se gestiona en stock, asegura el cálculo automático de los stocks a término y stocks reales y controla si el artículo está seguido por serie/lote/fifo para rechazar el movimiento que no esté provisto del número de lote/serie)

Además, las tablas de gestión de cuentas de usuario y derechos de acceso permanecen inaccesibles.

Para acceder a las bases, en la consulta de conexión (sqlconnecte()) es necesario indicar un login y una contraseña válidos.

El controlador ODBC debe estar en una versión compatible con la de las aplicaciones. Se comercializa con una clave de activación sin restricciones y, por lo tanto, no debe ser transmitido para prueba sin caer en la licencia pirata (lo cual no corresponde a la deontología de este foro).

Si es necesario, no dudes en contactarme a través del foro para más información.

¡Hasta luego!
Phil.
-1
rob1f > ppa Mensajes publicados 258 Estado Colaborador
 
Gracias por esta información, ¿puedes indicarme cuál es exactamente la referencia de este driver simba? Creo que existe una versión de evaluación.

De nuevo, gracias.
0
ppa Mensajes publicados 258 Estado Colaborador 65 > ppa Mensajes publicados 258 Estado Colaborador
 
Hola rob1f, el foro,

El controlador ODBC se adquiere a través de un revendedor de Sage con la referencia ODB10WPP100 al precio único de 300€.

Este producto no está asociado con un contrato de mantenimiento. Sin embargo, es imprescindible transmitir el n° de versión de tu gescom para obtener el controlador compatible.

No existe una versión de evaluación del controlador.

Para un contacto con el cliente en Sage, 01.41.66.21.21.

Si lo necesitas, no dudes en contactarme a través del foro para más información, o dejarme tu dirección de correo electrónico.

¡Hasta luego!
Phil.
-1
Fred
 
Salut à tous
Donc j'ai plusieurs soucis avec l'ASP et l'ODBC de Sage
D'abord j'ai un message 'mauvaise version de fichier'
Je suis en 12.02 pour l'ODBC et j'ai des bases en version 12 et en version 13
Faut-il que je fasse tourner l'ODBC sur la machine où se trouve le serveur Sage ou bien puis-je ouvrir mes bases sur une autre machine (le temps de faire mon programme qui va bien)
Après j'ai des problèmes d'instruction qui ne passent pas en ASP
Ex: Dim Connection As Connection
Ou bien "Set Connection = wrkODBC.OpenConnection"
Alors peut-être qu'il me manque un fichier dans le programme pour définir mes DLL du style
Donc le programme qui se trouve un peu plus haut ne tourne pas chez moi
Au secours !!!!!
0
ppa Mensajes publicados 258 Estado Colaborador 65
 
Hola Fred,

Te puedo responder sobre Sage pero no sobre asp.

1 - El controlador ODBC debe tener el nivel de la base de datos que estás atacando. Atención, no puedes instalar controladores ODBC Sage simultáneamente en 2 versiones diferentes. Tu controlador debe estar instalado en la máquina que ejecuta la aplicación.

2 - El servidor Sage se utiliza para garantizar el acceso concurrente de los usuarios a la base de datos (incluido el acceso ODBC). Si no pasas por el cliente/servidor Sage, abrirás las bases en exclusivo y paralizarás la explotación. Una solución elegante sería hacer una copia de tus bases en el puesto de desarrollo y allí puedes prescindir del servidor Sage.

Buena suerte, A+

Phil
-1
tipierre Mensajes publicados 11 Estado Miembro
 
¿Alguien sabría el nombre de la tabla donde se almacenan toda la información sobre un cliente?
-1
ppa Mensajes publicados 258 Estado Colaborador 65
 
Hola Tipierre,

En Sage Ligne 100, la información sobre los clientes se registra en un archivo de terceros (Clientes, proveedores, empleados y otros). La cuenta de terceros está identificada en la tabla F_COMPTET, que tiene enlaces con, entre otros, la tabla F_COMPTEG (para el control de la cuenta general colectiva) y F_COMPTETG (cuentas generales para el multi-colectivo).

La identificación de un tercero cliente se realiza mediante la zona F_COMPTET.CT_Type = 1.

Estas tablas son comunes a la contabilidad y a la gestión comercial, de las cuales abrimos simultáneamente las bases MAE y GCM para el uso de la gescom.

Estoy a tu disposición para más información.

Phil
-1
Adil
 
Bonjour,
me gustaría ejecutar un delete o update en la base de Sage 100
pero aparece el siguiente mensaje:

<eb1>La instrucción de actualización no es compatible.
Estado:37000, Nativo:0,Origen:[Simba][SimbaEngine ODBC Driver]</eb1>

No entiendo !!!

Me gustaría saber qué hay que hacer.*
También, sobre el uso de DUMP en Sage, ¿tienes algún documento que me pueda ayudar?
0
pandarouge Mensajes publicados 5 Estado Miembro 2
 
Hola a todos,

Ya he publicado esta pregunta que intento de nuevo.


Cuando importo una tabla de la contabilidad sage 12.02 a través del controlador odbc 12.02 samba en xp home sp2, la lista de tablas en la contabilidad se muestra normalmente, sin embargo, cuando selecciono una tabla y hago clic en Aceptar, obtengo el mensaje: "Argumento no válido."

Después de buscar en Internet, parece que esto se debe a que la versión msjet40.dll es demasiado reciente (4.0.8618.0). Esto corresponde al SP8 del motor jet.

Parece que hay que instalar el motor jet 4.0 sp6. Pero me es imposible encontrarlo en la red.

¿Alguien podría ayudarme a resolver este problema? Gracias de antemano.

Pandarouge.
0
ppa Mensajes publicados 258 Estado Colaborador 65 > pandarouge Mensajes publicados 5 Estado Miembro
 
Hola Pandarouge,

Publica la sintaxis de la consulta que estás enviando, para que pueda echarle un vistazo.

¡Hasta luego!

Phil
-1
ppa Mensajes publicados 258 Estado Colaborador 65 > Adil
 
Hola Adil,

¿Tu petición de actualización y eliminación es transmitida por el driver ODBC de Sage?

¿Te conectas con un usuario/contraseña válidos en la base de datos en cuestión?

Si no, envíame la sintaxis de la consulta que estás sometiendo.

Hasta luego

Phil
-1
David
 
Hola,

Tengo una versión de Sage Ligne 100 con controladores ODBC. Puedo acceder perfectamente a las tablas del software de Gestión Comercial, sin embargo, cuando intento acceder a las tablas del software de contabilidad, no puedo abrirlas y recibo un mensaje de error que dice (Argumento no válido) para cualquier tabla de Contabilidad.

¿Podrías ayudarme al respecto?

Gracias de antemano a todos.
0
marcanto65 Mensajes publicados 1 Estado Miembro
 
Hola a todos
estoy utilizando la versión 14.04 de Sage y el controlador ODBC correspondiente.
Tengo un pequeño problema con mi consulta SQL. Estoy tratando de transferir datos de Excel a Sage, pero no va correctamente.
Me devuelve el siguiente mensaje de error:
[Simba][simba ODBC Driver]Update F_ARTICLE Set AR_CODEEDIED_CODE1 = 3270190218289
AR_POIDSNET<<???>>=100 Where AR_REF='BRAAR10'

¿Tienen alguna idea?

Gracias de antemano
Marc
-1
ppa Mensajes publicados 258 Estado Colaborador 65
 
Hola marcanto65,

Tu solicitud me parecería correcta si añadieras una ", " antes de AR_POIDSNET.

El signo <<???>> indica el elemento que la solicitud no puede interpretar, y en este caso, es la separación con 3270190218289.

Por otra parte, ¿cuál es el tipo de AR_CODEEDIED_CODE1? ¿No sería alfa? En ese caso, deberías poner tu valor entre "'" (comillas simples).

Buena suerte,

A+
Phil
0
marcanto65 > ppa Mensajes publicados 258 Estado Colaborador
 
Hola Phil

Acabo de regresar de vacaciones, gracias por tu respuesta, acabo de probarlo y funciona

¡Hasta luego!

Marcanto
0
mika903 Mensajes publicados 727 Estado Miembro 33
 
Está bien, ya tienes 48 comentarios. Deja de molestarnos, por favor. Gracias.
-1
ppa Mensajes publicados 258 Estado Colaborador 65
 
Hola mika903,

¿A quién te estás dirigiendo en tu publicación?

Los usuarios que tienen problemas no me molestan, personalmente. No todo el mundo puede ser un experto en todos los campos.

Bueno, por otro lado, no soy del tipo que envía 15 publicaciones en 2 días tampoco.

La "tolerancia" podría ser una virtud necesaria en un foro de ayuda.

Que tu día sea agradable y provechoso para tu tranquilidad...

Hasta luego,

Phil
-1
wolf
 
Hola,
Disculpa mi mal francés.
Estamos desarrollando un software que accede a una base de datos Sage Ligne 100 gestión comercial a través del driver ODBC de Sage.
En este momento no es posible conectarse cuando la gestión comercial de Sage está abierta al mismo tiempo.
El acceso con el driver ODBC funciona bien cuando la gestión comercial está cerrada.
¿Es posible abrir la base de datos de manera no exclusiva?
No queremos escribir solo una búsqueda.

Muchas gracias por tu ayuda

Wolfgang
0
ppa Mensajes publicados 258 Estado Colaborador 65
 
Bonjour wolf,
Good morning wolf,

Le logiciel Sage L100 accède à la base de données directement. Un verrou bloque les tables de façon exclusive.
Pour partager l'accès à la base de données, tu dois utiliser un module "client serveur" nommé "Serveur Sage pour NT". cela fonctionne également avec NT, 2000, 2003. Attention avec Vista. La première partie (et la seconde) sont installées sur le serveur, la seconde sur chaque poste utilisateur. Le protocol utilisé est TCP/IP.

Le driver ODBC accède en C/S et tu peux partager ta base de données avec l'appli Sage (sur le même poste ou sur un autre). Bien sûr, tu dois disposer d'une licence multiutilisateurs pour ta gestion commerciale. Tu peux obtenir ce Serveur Sage auprès d'un revendeur au prix d'environ 300 €.

Tu peux m'envoyer un mail si tu as besoin d'autres informations.
You can email me if you need any further information.

Bonne chance,
Good luck,

Phil
-1
David
 
Hola Mozart,

¿Tienes instalado en tu puesto el servidor SAGE que permite la apertura simultánea de un mismo archivo de gestión comercial? (¿Puedes abrir varias gestiones comerciales al mismo tiempo?)

David
0
Mike
 
Hola,

Estoy creando una consulta para recuperar el precio de compra de un artículo para añadirlo al costo estándar.
Por defecto, la tabla F_ARTPRIX está vacía, así que tengo que hacer una inserción de los valores con el AR_REF correspondiente (primero selecciono los valores de la tabla F_ARTICLE, luego en mi bucle while realizo la inserción de los valores devueltos si no tengo ya un registro con la misma referencia).

En fin, me encuentro con un mensaje de error que dice:
Error de ejecución '-2147217913 (80040e07)':
[Simba][Simba ODBC Driver]Error in assignment

Y al debugear, el error apunta a mi cnx.Execute Sql

Me frustra porque no veo cómo resolver este problema.
Gracias a todos los que puedan ayudarme (sé que no es evidente).
Si es necesario, puedo copiar/pegar el código, pero no creo que sea necesario.

¡Gracias!
0
ppa Mensajes publicados 258 Estado Colaborador 65
 
Hola Mike,

Parece que tu controlador ODBC te está dando un error del tipo de intentar asignar un valor del tipo incorrecto al campo de la tabla.

Por lo tanto, haz tu copia/pega de tu código SQL que envías al controlador, para que podamos echar un vistazo a la sintaxis.

¡Hasta luego!

Phil
-1
georges
 
Hola,

He leído las diversas respuestas que das en este foro y creo que podrías hacerme ganar mucho tiempo en muy poco.
Personalmente, tengo algunos pequeños problemas en la adición en SAGE contabilidad y gescom.
Si todavía estás en el tema, me gustaría poder contactarte por teléfono.
Sinceramente.
0
ppa Mensajes publicados 258 Estado Colaborador 65 > georges
 
Lo siento, no puedo ayudar con eso.
0
Mike
 
Aquí está el tesoro ;) ¡Gracias por echarle un vistazo! :)

Sub prueba()

'Declaración de variables
Dim cnx As ADODB.Connection
Dim rst As ADODB.Recordset
Dim verif As ADODB.Recordset

'Instanciación de variables
Set cnx = New ADODB.Connection
Set rst = New ADODB.Recordset
Set verif = New ADODB.Recordset

'Conexión a la base de datos
cnx.ConnectionString = "DSN=test;UID=plop;PWD=plop;"
cnx.Open

'Ejecución de la consulta
rst.Open "SELECT AR_REF, AR_PRIXACH FROM F_ARTICLE", cnx
rst.MoveFirst

While Not (rst.EOF)

Dim Sql As String
Dim value As Variant
Dim ref As String
value = rst("AR_PRIXACH")
ref = rst("AR_REF")

'Ejecución de la consulta
verif.Open "SELECT AR_REF FROM F_ARTPRIX WHERE AR_REF='" & ref & "'", cnx

Dim nbRst As Variant
nbRst = verif.CacheSize

If nbRst <> 0 Then

Sql = "INSERT INTO F_ARTPRIX (AR_COUTSTD, AR_REF)"
Sql = Sql & " VALUES "
Sql = Sql & "('" & value & "', "
Sql = Sql & "'" & ref & "')"

'On Error Resume Next
' el depurador dice que el error se encuentra aquí ??? ¿es mi inserción o los valores de mi inserción?
cnx.Execute Sql

Else
MsgBox ref & " ya ingresado "
End If

rst.MoveNext
Wend
End Sub
0
ppa
 
Hola,

Sql = Sql & "('" & value & "', "

A priori, el &value& está entre comillas simples lo que implica un valor de tipo "carácter", mientras que AR_COUTSTD es de tipo "Numérico"

Inténtalo y danos el resultado de tu corrección.

¡Hasta luego!

phil
0
Mike
 
Hola,

a pesar de que declaro value como String, no funciona
quizás sería necesario forzar la conversión de rst("AR_PRIXACH") al formato String
¿existe alguna función que lo permita?
a menos que la base Sage 100 solo acepte ciertos tipos particulares?

Gracias
0
laurent
 
¿Y cómo acceder a la tabla de derechos para hacer una edición de control ya que no tenemos acceso a la misma?
0
  • 1
  • 2