Trabajar con tablas vinculadas y SQL
Con algo de trabajo he creado una base que funciona a la perfección, esto es en forma local, pero mi interés es que se pueda migrar a SQL (en el mejor de los casos) o que se divida para que funcione en varios equipos al mismo tiempo.
El problema que tengo es al manejar recordset's dentro de los informes ya que tengo lo siguiente:
Private Sub EncabezadoDelInforme_Print(Cancel As Integer, PrintCount As Integer)
Dim DB As Database, tabla, tabla1, tabla2, tabla3, tabla4, tabla5, tabla6 As Recordset
Set DB = CurrentDb
Set tabla = DB.OpenRecordset("Clientes")
tabla.Index = "primarykey"
tabla.Seek "=", Me.Cliente
Me.nombre_cliente = tabla(2)
Me.Nombre_corto = tabla(3)
Me.direccion = tabla(4)
Set tabla = DB.OpenRecordset("Inventario")
tabla.Index = "primarykey"
tabla.Seek "=", Me.Serie
Me.IPos = tabla(2)
Me.ITanq = tabla(3)
Me.INDesc = tabla(4)
Me.IIDe = tabla(5)
Me.IMarca = tabla(6)
Me.IModelo = tabla(7)
Me.IKF = tabla(8)
Me.IUKF = tabla(9)
Set tabla = DB.OpenRecordset("Tipo Medidor")
tabla.Index = "primarykey"
tabla.Seek "=", Me.INDesc
Me.ITipo = tabla(1)
'Patrón con el que se calibró el instrumento.
Set tabla1 = DB.OpenRecordset("Patrones")
tabla1.Index = "primarykey"
tabla1.Seek "=", Me.Patrón
Me.PExped = tabla1(3)
Me.PSerie = tabla1(2)
Me.PPatrón = tabla1(4)
Set tabla2 = DB.OpenRecordset("Inventario de Patrones")
tabla2.Index = "primarykey"
tabla2.Seek "=", Me.PSerie
Me.PDesc = tabla2(2)
Me.PMarca = tabla2(3)
Me.PModelo = tabla2(4)
Me.Procedi = tabla2(5)
'Patrón con el que fué calibrado el patrón.
Set tabla3 = DB.OpenRecordset("Patrones")
tabla3.Index = "primarykey"
tabla3.Seek "=", Me.PPatrón
Me.PPSerie = tabla3(2)
Set tabla4 = DB.OpenRecordset("Inventario de Patrones")
tabla4.Index = "primarykey"
tabla4.Seek "=", Me.PPSerie
Me.PPDesc = tabla4(2)
Set tabla5 = DB.OpenRecordset("Empleados")
tabla5.Index = "primarykey"
tabla5.Seek "=", Me.calibró
Me.NCalibró = tabla5(1)
Me.PCalibró = tabla5(2)
tabla5.Seek "=", Me.aprobó
Me.NAprobó = tabla5(1)
Me.PAprobó = tabla5(2)
End Sub
Esto funciona en forma local, pero al vincular con tablas SQL me envía el mensaje:
"Se ha producido el error '3622' en tiempo de ejecución:
Debe usar la opción dbSeeChanges con OpenRecordset al tener acceso a una tabla SQLServer que tenga una columna IDENTITY."
Esto ya lo he resuelto haciendo lo siguiente:
Set tabla6 = DB.OpenRecordset("Clientes", , dbSeeChanges)
Ayer funcionó pero ahora no, ¿no se que pasa?
Pero después me dice de las asignaciones que el objeto no admite la propiedad, y de ahí en adelante no se como hacerle. Si me pudieras orientar con un ejemplo o con uno de tus útiles consejos.
El problema que tengo es al manejar recordset's dentro de los informes ya que tengo lo siguiente:
Private Sub EncabezadoDelInforme_Print(Cancel As Integer, PrintCount As Integer)
Dim DB As Database, tabla, tabla1, tabla2, tabla3, tabla4, tabla5, tabla6 As Recordset
Set DB = CurrentDb
Set tabla = DB.OpenRecordset("Clientes")
tabla.Index = "primarykey"
tabla.Seek "=", Me.Cliente
Me.nombre_cliente = tabla(2)
Me.Nombre_corto = tabla(3)
Me.direccion = tabla(4)
Set tabla = DB.OpenRecordset("Inventario")
tabla.Index = "primarykey"
tabla.Seek "=", Me.Serie
Me.IPos = tabla(2)
Me.ITanq = tabla(3)
Me.INDesc = tabla(4)
Me.IIDe = tabla(5)
Me.IMarca = tabla(6)
Me.IModelo = tabla(7)
Me.IKF = tabla(8)
Me.IUKF = tabla(9)
Set tabla = DB.OpenRecordset("Tipo Medidor")
tabla.Index = "primarykey"
tabla.Seek "=", Me.INDesc
Me.ITipo = tabla(1)
'Patrón con el que se calibró el instrumento.
Set tabla1 = DB.OpenRecordset("Patrones")
tabla1.Index = "primarykey"
tabla1.Seek "=", Me.Patrón
Me.PExped = tabla1(3)
Me.PSerie = tabla1(2)
Me.PPatrón = tabla1(4)
Set tabla2 = DB.OpenRecordset("Inventario de Patrones")
tabla2.Index = "primarykey"
tabla2.Seek "=", Me.PSerie
Me.PDesc = tabla2(2)
Me.PMarca = tabla2(3)
Me.PModelo = tabla2(4)
Me.Procedi = tabla2(5)
'Patrón con el que fué calibrado el patrón.
Set tabla3 = DB.OpenRecordset("Patrones")
tabla3.Index = "primarykey"
tabla3.Seek "=", Me.PPatrón
Me.PPSerie = tabla3(2)
Set tabla4 = DB.OpenRecordset("Inventario de Patrones")
tabla4.Index = "primarykey"
tabla4.Seek "=", Me.PPSerie
Me.PPDesc = tabla4(2)
Set tabla5 = DB.OpenRecordset("Empleados")
tabla5.Index = "primarykey"
tabla5.Seek "=", Me.calibró
Me.NCalibró = tabla5(1)
Me.PCalibró = tabla5(2)
tabla5.Seek "=", Me.aprobó
Me.NAprobó = tabla5(1)
Me.PAprobó = tabla5(2)
End Sub
Esto funciona en forma local, pero al vincular con tablas SQL me envía el mensaje:
"Se ha producido el error '3622' en tiempo de ejecución:
Debe usar la opción dbSeeChanges con OpenRecordset al tener acceso a una tabla SQLServer que tenga una columna IDENTITY."
Esto ya lo he resuelto haciendo lo siguiente:
Set tabla6 = DB.OpenRecordset("Clientes", , dbSeeChanges)
Ayer funcionó pero ahora no, ¿no se que pasa?
Pero después me dice de las asignaciones que el objeto no admite la propiedad, y de ahí en adelante no se como hacerle. Si me pudieras orientar con un ejemplo o con uno de tus útiles consejos.
Respuesta de telemaco
1