** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Conectar a tabla de Sql Server
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoConectar a tabla de Sql Server

 Responder Responder
Autor
Mensaje
kisko Ver desplegable
Nuevo
Nuevo


Unido: 17/Septiembre/2013
Localización: Nuevo Leon
Estado: Sin conexión
Puntos: 10
Enlace directo a este mensaje Tema: Conectar a tabla de Sql Server
    Enviado: 24/Noviembre/2020 a las 10:01
Buenas Compañeros, por favor les pido su ayuda, les explico:

Hace algunos años hice un programa en Access, el cual estaba dividido en dos, un sistemaContable.mdb
y se vincula con una base de datos llamada bdsys.mdb, esta trabajando muy bien.

Mi modo de guardar registros en cada formulario es por medio de codigo, por ejemplo utilizo la tabla TrisVer en un formulario llamado Ventas que contiene campos independientes, no tiene origen de registro, estos al llenarlos se guardan mediante el siguente codigo en el motor local de la base de datos en la tabla TrisVer de bdsys.mdb:

        Dim rst As Recordset
        Dim dbs As DAO.Database
        Dim strtable As String
        Dim strentry As String
        strtable = "TrisVer"
        Set dbs = CurrentDb
        Set rst = dbs.OpenRecordset(strtable)
        rst.AddNew
        rst!idtris = me.id
        rst!idempleado = Me.IDEMPLEADOT
        rst!fecha = Me.FECHAT
        rst!ABOCOMISION = 0        
        rst!VENTABRUTA = Me.VENTABRUTAT
        rst!COMISION = Me.COMISIONT
        rst!VENTANETA = Me.VENTANETAT
        rst!HJST = Me.HJSTT
        rst!EFECTIVO1 = Me.EFECTIVO1T
        rst!DIFERENCIA = Me.DIFERENCIAT
        rst!IDVENTA = Me.Texto124
        rst!turno = Forms![inicio2]![turno]
        rst!cajero = Me.CAJEROT
        rst!PORCOMISION = Me.PORCOMISION
        rst!sucursal = Me.IDEMPLEADOT.Column(5)
        rst!TIPOSORTEO = Me.Texto55
        rst!sorteo = Me.sorteo
        rst.Update
        rst.Close

Me están pidiendo que la captura de este formulario se guarde en la misma tabla de TrisVer, pero ya la migraron a una base de datos de SQLSERVER,y no se como conectarla haciendo cambios a este codigo para que se realice el guardado como es de cada registro.

Disculpen si no me explique bien.

Saludos.
Buen día... Saludos
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14738
Enlace directo a este mensaje Enviado: 24/Noviembre/2020 a las 10:33
Yo vincularía la tabla de SQL server y replicaría el código pero cambiando el nombre de la tabla. 

Para vincular necesitaras el ODBC correspondiente, nombre del servidor, nombre de la base de datos, nombre de la tabla, usuario y password

Un saludo
Xavi, un minyó de Terrassa

Mi web
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14025
Enlace directo a este mensaje Enviado: 24/Noviembre/2020 a las 10:33
La opción más fácil sería crear un ODBC que apunte a la BD SQLSERVER, adjuntar la tabla a Access y ya estaría hecho todo.

La otra opción pasa por hacerlo con ADO:
- crearte una conexión a la BD SQLSERVER
- añadir el registro a esa tabla, bien por recordset ADO o bien por una consulta de inserción (método recomendable)

Entiendo que depende mucho de tu nivel de programación / VBA ...


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
kisko Ver desplegable
Nuevo
Nuevo


Unido: 17/Septiembre/2013
Localización: Nuevo Leon
Estado: Sin conexión
Puntos: 10
Enlace directo a este mensaje Enviado: 25/Noviembre/2020 a las 07:37
Buenas Noches compañeros, ya esta vinculada la tabla TrisVer a una base de datos en sqlserver,
y modifique el codigo de la siguiente manera:

       Dim dbs As DAO.Database
       Dim rst As DAO.Recordset
       Dim strSQL As String
       Set dbs = CurrentDb
       strSQL = "TRISVER"
       Set rst = dbs.OpenRecordset(strSQL, , dbSeeChanges)
       rst.AddNew
        rst!idtris = me.id
        rst!idempleado = Me.IDEMPLEADOT
        rst!fecha = Me.FECHAT
        rst!FECHASYS = Me.FECHAT
        rst!ABOCOMISION = 0
        rst!VENTABRUTA = Me.VENTABRUTAT
        rst!COMISION = Me.COMISIONT
        rst!VENTANETA = Me.VENTANETAT
        rst!HJST = Me.HJSTT
        rst!EFECTIVO1 = Me.EFECTIVO1T
        rst!DIFERENCIA = Me.DIFERENCIAT
        rst!IDVENTA = Me.Texto124
        rst!turno = Forms![inicio2]![turno]
        rst!cajero = Me.CAJEROT
        rst!PORCOMISION = Me.PORCOMISION
        rst!sucursal = Me.IDEMPLEADOT.Column(5)
        rst!TIPOSORTEO = Me.Texto55
        rst!sorteo = Me.sorteo
        rst.Update
        rst.Close

me marca error en la linea de rst.update: 

Se ha producido el error 3146 en tiempo de ejecucion.
ODBC:fallo de llamada

Disculpen que mis nivel es limitado, me pueden por favor decir porque marca este error al momento de guardar el registro en esta tabla, y si hay que corregir el código y cual seria una mejor solución con un ejemplo por favor.

Saludos.

Buen día... Saludos
Arriba
kisko Ver desplegable
Nuevo
Nuevo


Unido: 17/Septiembre/2013
Localización: Nuevo Leon
Estado: Sin conexión
Puntos: 10
Enlace directo a este mensaje Enviado: 25/Noviembre/2020 a las 07:39
Tendran un ejemplo de ADO o tabla de insercion? Perdonen mi nivel.
Buen día... Saludos
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14025
Enlace directo a este mensaje Enviado: 25/Noviembre/2020 a las 08:35
Entiendo que has creado un ODBC y has vinculado la tabla de SQL en la aplicación ¿correcto?.

Si es así, prueba primero a insertar manualmente un registro directamente en la tabla, a ver si te deja hacerlo, así compruebas el nivel de permisos que tienes.
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
kisko Ver desplegable
Nuevo
Nuevo


Unido: 17/Septiembre/2013
Localización: Nuevo Leon
Estado: Sin conexión
Puntos: 10
Enlace directo a este mensaje Enviado: 26/Noviembre/2020 a las 07:49
Buenas noches Mihura, si me permite capturar directamente en la tabla. como puedo cambiar el código del formulario al guardarlo. Muchas Gracias

Saludos.

Buen día... Saludos
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14025
Enlace directo a este mensaje Enviado: 26/Noviembre/2020 a las 12:02
Prueba con:

Set rst = dbs.OpenRecordset(strSQL, dbOpenDynaset, dbSeeChanges)

Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
kisko Ver desplegable
Nuevo
Nuevo


Unido: 17/Septiembre/2013
Localización: Nuevo Leon
Estado: Sin conexión
Puntos: 10
Enlace directo a este mensaje Enviado: 27/Noviembre/2020 a las 23:57
Buen día Mihura, ya funciono con la tabla de datos anexados. Muchas Gracias por que aprendí algo nuevo. Sonrisa

Saludos
Buen día... Saludos
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable