Problemas DAO

Mira tengo esto
set bdd = opendatabase(app.path & basedatos)
sql = "select * from codigo = '0000004' and user = '02'"
set record = bdd.openrecordset(sql)
esto em resulta. Ojo pero..
al cambiar el sqlpor este no me sale nada
sql = "select * from codigo = '0000004' and user = '02' and gestion between 2001 and 2005" no em bota nada.. Me sale error no hay registro activo... Ayuda
msn ausber chat

1 respuesta

Respuesta
1
Haber me puedes ayudar entregando algunos dato.
Que error te da.. y si puedes enviar la estructura de la tabla en cuestión..
quisiera que em agregues... al msn
Ya solucione ese problema gracias...
Ahora tengo otro problema una variable de tipo dao.database me tarda en cerrar
dborigen.close se tarda unos 3 minutos y hasta más porque sera...
[email protected]
Ok
Solo debes presentar más datos con respecto al error
Private Sub CopiaTablas(Optional boCopiarDatos As Boolean = True)
Dim strDestino As String
Dim i As Long
Dim CONTADOR As Integer
strDestino = App.Path & "\bdd\bdd.mdb"
Screen.MousePointer = vbHourglass
' XP_ProgressBar1.Value = 0
' Timer1.Enabled = True
'abrir origen y destino
Set dbOrigen = OpenDatabase(strOrigen, False, False, "DBase IV;")
Set dbDestino = OpenDatabase(strDestino, False)
'hay propiedades que no se pueden copiar como el value de los campos, etc
On Error Resume Next
'para cada tabla de origen
For Each tdOrigen In dbOrigen.TableDefs
If (tdOrigen.Attributes And (dbSystemObject Or dbHiddenObject)) = 0 Then
'si la tabla no es del sistema
'mirar si existe la tabla en destino
For Each tdDestino In dbDestino.TableDefs
If tdDestino.Name = tdOrigen.Name Then
'si existe la borro
dbDestino.TableDefs.Delete tdDestino.Name
Exit For
End If
Next
'creo la tabla en el destino
Set tdDestino = dbDestino.CreateTableDef(tdOrigen.Name, tdOrigen.Attributes, tdOrigen.SourceTableName, tdOrigen.Connect)
'le añado los campos
For Each fdOrigen In tdOrigen.Fields
Set fdDestino = tdDestino.CreateField(fdOrigen.Name, fdOrigen.Type, fdOrigen.Size)
'copio las propiedades del campo
For Each prOrigen In fdOrigen.Properties
fdDestino.Properties(prOrigen.Name) = fdOrigen.Properties(prOrigen.Name)
Next
tdDestino.Fields.Append fdDestino
Next
'le añado los indices
For Each idOrigen In tdOrigen.Indexes
Set idDestino = tdDestino.CreateIndex(idOrigen.Name)
'añado los campos al índice
For Each fdOrigen In idOrigen.Fields
Set fdDestino = idDestino.CreateField(fdOrigen.Name)
idDestino.Fields.Append fdDestino
Next
'copio las propiedades del índice
For Each prOrigen In idDestino.Properties
idDestino.Properties(prOrigen.Name) = idOrigen.Properties(prOrigen.Name)
Next
tdDestino.Indexes.Append idDestino
Next
dbDestino.TableDefs.Append tdDestino
'copio los datos de la tabla, si se solicitó
If boCopiarDatos Then dbOrigen.Execute ("INSERT INTO " + tdDestino.Name + " IN '" + strDestino + "' SELECT * FROM " + tdDestino.Name)
End If
conta = conta + 1
If conta > TABLAS Then
Exit Sub
End If
XP_ProgressBar1.Value = XP_ProgressBar1.Value + 2
'lblcopia.Caption = "Copiando.... " & tdOrigen.Name
Next
'cerrar origen y destino
dbOrigen.Close '' AQUI ES DONDE TARDA 3 MINUTOS Y MAS CADA UNO
dbDestino.Close
Set dbOrigen = Nothing: Set dbDestino = Nothing
Set tdOrigen = Nothing: Set tdDestino = Nothing
Set fdOrigen = Nothing: Set fdDestino = Nothing
Set idOrigen = Nothing: Set idDestino = Nothing
Set prOrigen = Nothing: Set prDestino = Nothing
Screen.MousePointer = vbDefault
End Sub
Estuve revisando el código y aparentemente no se ve ningún problema, la mayoría de las veces que sucede algo parecido es por que la base de datos queda terminando un proceso, y asumiendo que es access lo más probable que sea problema de este.
Tratare de buscar algo más y seria bueno si me mandas la estructura de la base de datos para tener algo más claro.
Una consulta, ¿para qué quieres copiar tablas de una base de datos?
Bueno lo que pasa es que realice un sistema de consulta basado en la base de datos de un sistema del gobierno... este sistema que realize es de solo consulta y esta en access...
Como la bdd de sistema original esta en foxpro 3.0 y bueno tuve líos. Trabajando vb6 y foxpro3.0 lo ise en access.. osea migro las tablas de foxpro a access ojo es (97) si me dieras tu correo msn te mandaría la base de datos completa.. para que lo veas.. y puedas aconsejarme... como decía la migración es rápida 50mil registros al toke.. termina pero al cerrar es donde se duerme... osea tarda estaré esperando tu msn o mejor me agreas [email protected]
Te aconsejo que una base de datos access es solo para trabajos básicos y no es profesional, yo realize un proyecto para un casino de juegos y tuvimos problemas a los dos años de uso porque access solo soporta una cantidad limitada (100 mil registros por tabla aprox.) de registros y de indices, por lo cual la emigramos a postgres, es una de las bases de datos más potentes del mundo y es free. Te aconsejo migrar tus sistemas a una base de datos más profesional.
bueno mi correo es [email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas