Visual Basic - problema con access 97y vb

Life is soft - evento anual de software empresarial
 
Vista:

problema con access 97y vb

Publicado por soncillo (1 intervención) el 13/04/2005 14:20:16
El problema es el siguiente, aca les dejo uno bien complicado:

Yo abro 1 base de datos(access97) desde un modulo que tiene 2 Tablas, las variables Recorset de dichas tablas son gobales y en el FORM que uso esas tablas hago "Set Data1.recordser = DATA1" por ejemplo para hacignarle a un control Data esa tabla, todo anda muy lindo modifico, agrego, borto, etc.

El codigo para abrir las bases de datos es:

Global Base_general As Database
Global Tabla1 As Recordset
Global Tabla2 As Recordset

Function abrirBase(pathdatabase As String)

Set Base_general = Workspaces(0).OpenDatabase(pathdatabase)
Set Tabla1 = Base_general.OpenRecordset("Tabla")
Set Tabla2 = Base_general.OpenRecordset("Tabla2")
End Function
'---------

Hasta aca todo andaba de marabilla, perooooo al hacer una consulta tengo que crear una base de datos temporal que despues sel almacenara etc etc, pero tengo que crear esa base temporal, leyendo un poco de la ayuda del VB no encuentro dificultades y la creo de la siguiente manera:

Private Sub Guardar_Click()
Dim wrkPredeterminado As Workspace
Dim dbsNueva As Database
Dim CompExis As String

Set wrkPredeterminado = DBEngine.Workspaces(0)

CompExis = App.Path & "\MDB\" & Text1.Text

Set dbsNueva = wrkPredeterminado.CreateDatabase(CompExis, _
dbLangGeneral, dbEncrypt)

dbsNueva.Close
wrkPredeterminado.Close

Call Crear_Tablas(CompExis) ' ACA LLAMO AL SUB QUE SIGUE
End Sub
'-------------------------------
Sub Crear_Tablas(CompExis As String)

Dim tdfNuevo As TableDef
Dim fldBucle As Field
Dim dbsNeptuno As Database

Set wrkPredeterminado = DBEngine.Workspaces(0)
Set dbsNeptuno = wrkPredeterminado.OpenDatabase(CompExis)

Set tdfNuevo = dbsNeptuno.CreateTableDef("Tabla")

With tdfNuevo
.Fields.Append .CreateField("Ncheque", dbText, 15)
'Etc... aca van mas campos pero bue
End With
dbsNeptuno.TableDefs.Append tdfNuevo

Set tdfNuevo = dbsNeptuno.CreateTableDef("Tabla2")
With tdfNuevo
.Fields.Append .CreateField("Fecha", dbText, 10)
'Etc... aca van mas campos pero bue
End With

dbsNeptuno.TableDefs.Append tdfNuevo
dbsNeptuno.Close
'---------------------------------------------------------
Y aca se hace lio, por alguna razon, supongo que tiene que ver con el "Workspaces(0)" pero eso me lo dira alguien q la tenga clara, llamo otro procedimiento igual al primero para abrir esta base que cree y hacer una serie de consultas, antes que digan algo, ovbio que uso variables Database y Recordset diferentes para esta base de datos, pero por alguna razon que desconosco, pierdo la base anterior, osea que los controles DATA y cualquier SUB que utilice la 1ra base de datos que abri deja de funcionar, el error es que ya no esta cargada o que no tiene un valor, no se por que al abrir una base de datos pierdo la otra, esa es mi consulta puntual y cual podria ser la solucion! Ahora bien, perdi la 1ra base de datos pero me quedo abierta la 2da base, esta que recien cree, y si vuelvo abrir la 1ra base de datos entonces si anda... extraño no?

Desde ya que el que me diga le voy a estar hagradecido de por vida
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder