Error Indices

Hola estoy con bases de datos en Access 97, el problema es que si trabajo con indices sobre la base de datos principal, Ejm:
Set wrkJet = CreateWorkspace("", "admin", "", dbUseJet)
Set dbs = wrkJet.OpenDatabase("Original.mdb", False)
Set Busqueda = dbs.OpenRecordset("CLIENTES")
Busqueda.Index = "CLICOD"
Pero cuando trabajo en una Bd que tiene vinculada la misma tabla y utilizo en mismo sistema de búsqueda Indice
Set wrkJet = CreateWorkspace("", "admin", "", dbUseJet)
Set dbs = wrkJet.OpenDatabase("Replica", False)
Set Busqueda = dbs.OpenRecordset("CLIENTES")
Busqueda.Index = "CLICOD"
No funciona da error 3251operacion no valida para este tipo de objeto
Como puedo realizar búsquedas en tablas viculadas, o tengo que poner algo en la tabla principal.
Saludos,

2 respuestas

Respuesta
1
Si lo que quieres es abrir una tabla vinculada según tus ejemplos no lo estas haciendo adecuadamente seria así, o quizás tu pregunta no esta correctamente expuesta y no me queda claro en cualquier caso si es esto ultimo aclarame la pregunta y lo vemos y si por el contrario esta espuesta correctamente la solución seria la que te indico saludos a ti
Set wrkJet = CreateWorkspace("", "admin", "", dbUseJet)
Set dbs = wrkJet.OpenDatabase("Original.mdb", False)
Set Busqueda = dbs.OpenRecordset("CLIENTES")
Busqueda.Index = "CLICOD"
Pero cuando trabajo en una Bd que tiene vinculada la misma tabla y utilizo en mismo sistema de búsqueda Indice
Set wrkJet = CreateWorkspace("", "admin", "", dbUseJet)
Set dbs = wrkJet.OpenDatabase("Original.mdb", False)
Set Busqueda = dbs.OpenRecordset("TablaVinculada")
Busqueda.Index = "CLICOD"
Gracias por tu pronta respuesta, te aclaro un poco más mi pregunta. Tengo una BD llama Replica, en esta BD tengo una tabla vinculada llamada CLIENTES (Esta tabla esta en otra BD Llama ORIGINAL), mi problema es que si trabajo con la BD Original y utilizo el Indice funciona, pero abro la BD Replica y la tabla CLIENTES y no funciona el Indice. Digamos que que BD Original estará situada en el Servidor, y la BD
Replica estará situada en los Clientes. Yo lo único que quiero es utilizar el indice de dicha tabla, para buscar el cliente, si tienes alguna manera de buscar un registro, te ruego me indiques cual.
Perdona si soy un poco pesado, saludos
Agrega el componente de ado y deja la conexión RDO ya que para aplicaciones cliente servidor el único método fiable es ADO. Para utilizar un método de búsqueda rápida aplica lo siguiente.
Dim Db As Database, Rs As Recordset
Set Db = Workspaces(0).OpenDatabase("Replica")
Set Rs = Db.OpenRecordset("clientes")
rsCaracteristicas.Find ("Codigo = " & iCodigo)
Te pongo la sintaxis y el modo de uso del find aquí abajo para que ajustes a tu gusto
Find, método
Busca el registro que satisfaga los criterios especificados en el Recordset. Si se cumplen los criterios, la posición del recordset se establece en el registro encontrado; si no, la posición se establece al final del recordset.
Sintaxis
Find (criteria, SkipRows, searchDirection, start)
Parámetros
Criteria Un String que contiene una instrucción que especifica el nombre de la columna, el operador de comparación y el valor utilizado en la búsqueda.
SkipRows Un valor Long opcional, cuyo valor predeterminado es cero, que especifica el desplazamiento desde la fila actual o marcador de inicio en el que comenzar la búsqueda.
SearchDirection Un valor SearchDirectionEnum opcional que especifica si la búsqueda tiene que comenzar en la fila actual o en la siguiente fila disponible de la dirección de la búsqueda. Su valor puede ser adSearchForward o adSearchBackward. La búsqueda termina al principio o el final del recordset, dependiendo del valor de searchDirection.
Start Un marcador Variant opcional que se utiliza como posición inicial de la búsqueda.
Comentarios
El operador de comparación de criteria puede ser ">" (mayor que), "<" (menor que), "=" (igual a), ">=" (mayor o igual que), "<=" (menor o igual que), "<>" (distinto de) o "like" (coincidencia parcial de cadenas).
El valor de criteria puede ser una cadena, un número en coma flotante o una fecha. Los valores de cadena están delimitados con comillas sencillas (por ejemplo, "estado = 'WA'"). Los valores de fecha están delimitados con signos "#" (por ejemplo, "fecha_inicial > #7/22/97#").
Si el operador de comparación es "like", el valor de la cadena puede contener "*" (una o varias ocurrencias de cualquier carácter) o "_" (una ocurrencia de cualquier carácter). (Por ejemplo, "estado like F_*" encuentra Maine y Massachusetts).
Respuesta
1
Te aconsejo que utilices objetos recordset, con objetos connection, así las búsquedas la podrás hacer con consultas SQL sin necesidad de hacer tabla por tabla si necesitas algún ejemplo dímelo...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas