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 de caerices
1
1
caerices, Experto en Visual Basic y la programacion con Crystal Report -...
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]