Visual Basic - Ayudita

Life is soft - evento anual de software empresarial
 
Vista:

Ayudita

Publicado por Lucia (1 intervención) el 02/06/2006 07:51:55
Hola wenas me e creado un pequeño programa para replicar y sincronizar bases de datos en access. Aqui dejo el codigo para que lo veais y me exeis una mano.

En el módulo .bas estas son las funciones:

Public Function CreatePartialReplica(ByVal origen As String, ByVal destino As String)
Dim dbsFull As Database

Set dbsFull = OpenDatabase(origen)
dbsFull.MakeReplica destino, dbRepMakePartial
dbsFull.Close
End Function

Public Function sincronize(ByVal origen As String, ByVal destino As String)
'variable para almacenar las operaciones en la base de datos'
Dim base As Database
'Abre la base de datos en este caso la replicacion'
Set base = OpenDatabase(destino)
'sincroniza la base de datos anterior con la original'
base.Synchronize (origen)
'cerramos la base de datos para que se visualizen los cambios'
base.Close
End Function

En un form que se llama configurar el código siguiente:

es muy largo pero en realidad no debería ser tanto lo que pasa que controlo que se hagan invisibles ciertos botones.

Public origen As String
Public destino As String
Public interval As Integer

Private Sub cmdcambiar_Click()
txtorigen.Enabled = True
End Sub

Private Sub cmdreplicar_Click()
origen = txtorigen
destino = txtdestino

If ((txtorigen.Text = "") Or (txtdestino.Text = "")) Then
MsgBox "No puedes dejar los campos en blanco"
Else
Call Module1.CreatePartialReplica(origen, destino)
MsgBox "SE HA CREADO LA REPLICA DE LA BASE DE DATOS"
Label1.Visible = False
Label2.Visible = False
txtorigen.Visible = False
txtdestino.Visible = False
cmdreplicar.Visible = False
cmdcambiar.Visible = False
End If

End Sub

Private Sub cmdsincronizar_Click()
origen = txtorigen
destino = txtdestino

If ((txtorigen.Text = "") Or (txtdestino.Text = "")) Then
MsgBox "Los campos de origen o de destino están en blanco"
Label1.Visible = True
Label2.Visible = True
txtorigen.Visible = True
txtdestino.Visible = True
cmdreplicar.Visible = True
cmdcambiar.Visible = True
Label4.Visible = False
txtinterval.Visible = False
cmdsincronizar.Visible = False
Else
If txtinterval.Text = "" Then
MsgBox "No puedes dejar campo en blanco"
Else
interval = Val(txtinterval.Text) * 1000
Timer1.interval = interval
MsgBox "Base de datos sincronizada"
Label4.Visible = False
txtinterval.Visible = False
cmdsincronizar.Visible = False
End If
End If
End Sub

Private Sub cmdvolver_Click()
configurar.Hide
End Sub

Private Sub Form_Resize()
configurar.Cls
configurar.AutoRedraw = True
configurar.DrawStyle = 6
configurar.DrawMode = 13
configurar.DrawWidth = 2
configurar.ScaleMode = 3
'configurar.ScaleHeight = (255 * 2)
For i = 0 To 255
configurar.Line (0, Y)-(configurar.Width, Y + 2), RGB(0, 0, i), BF
Y = Y + 2
Next i
End Sub

Private Sub mnuReplicar_Click()
Label1.Visible = True
Label2.Visible = True
txtorigen.Visible = True
txtdestino.Visible = True
cmdreplicar.Visible = True
Label4.Visible = False
txtinterval.Visible = False
cmdsincronizar.Visible = False
cmdcambiar.Visible = True
End Sub

Private Sub mnuSincronizar_Click()
Label4.Visible = True
txtinterval.Visible = True
cmdsincronizar.Visible = True
Label1.Visible = False
Label2.Visible = False
txtorigen.Visible = False
txtdestino.Visible = False
cmdreplicar.Visible = False
cmdcambiar.Visible = False

End Sub

Private Sub mnuVolver_Click()
configurar.Hide
End Sub

Private Sub Timer1_Timer()
Call Module1.sincronize(origen, destino)
End Sub

Mi duda es que al replicar dos bases de datos con igual nombre me salta un error y se me para el programa.

como consigo hacer para decir al usuario que la base de datos ya existe con ese nombre y que ponga otro.
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

RE:Ayudita

Publicado por ivan (1039 intervenciones) el 02/06/2006 19:44:42
No entendí nada de tu código, pero atendiendo tu pregunta de cómo hacer para indicarle al usuario que cierta base de datos ya existe con ese nombre....

Si acaso te refieres a verificar la existencia de algún archivo de acces o de cualquier otro tipo, prueba con esto

--> Set Fso = CreateObject("Scripting.FileSystemObject")
--> If (Fso.FileExists("c:\bd1.mdb")) Then
--> MsgBox "El Archivo ya Existe"
--> Else
--> MsgBox "El Archivo NO Existe"
--> End If
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar