Access - Ejecutar Codigo VBA

   
Vista:

Ejecutar Codigo VBA

Publicado por Yeah (2 intervenciones) el 20/01/2009 20:25:30
Hola a Todos:

Como hago para ejecutar en codigo VBA desde un boton de comando en un form
por ejemplo

Public Sub sSplitdbFEWithRelationships(strFile As String)

On Error GoTo E_Handle
Dim dbFE As Database, dbBE As Database
Dim tdf As TableDef
Dim rel As Relation
Dim fld As Field
Dim astr(1 To 100, 1 To 4) As String
Dim intLoop As Integer, intRelCount As Integer, intTableCount As Integer
Dim strTable As String
Set dbFE = CurrentDb
intLoop = 1
If Len(Dir(strFile)) = 0 Then
Set dbBE = DBEngine(0).CreateDatabase(strFile, dbLangGeneral)
Else
Set dbBE = DBEngine(0).OpenDatabase(strFile)
End If
For Each rel In dbFE.Relations
For Each fld In rel.Fields
astr(intLoop, 1) = rel.Table
astr(intLoop, 2) = rel.ForeignTable
astr(intLoop, 3) = fld.Name
astr(intLoop, 4) = fld.ForeignName
intLoop = intLoop + 1
Next fld
Next rel
intRelCount = dbFE.Relations.Count - 1
For intLoop = intRelCount To 0 Step -1
dbFE.Relations.Delete dbFE.Relations(intLoop).Name
Next intLoop
intTableCount = dbFE.TableDefs.Count - 1
For intLoop = intTableCount To 0 Step -1
strTable = dbFE.TableDefs(intLoop).Name
If Left(strTable, 4) <> "MSys" And Left(strTable, 4) <> "USys" And Len(dbFE.TableDefs(intLoop).Connect) = 0 Then
DoCmd.TransferDatabase acExport, "Microsoft Access", strFile, acTable, strTable, strTable
DoCmd.DeleteObject acTable, strTable
DoCmd.TransferDatabase acLink, "Microsoft Access", strFile, acTable, strTable, strTable
End If
Next intLoop
For intLoop = 1 To intRelCount + 1
Set rel = dbBE.CreateRelation(astr(intLoop, 1) & astr(intLoop, 2), astr(intLoop, 1), astr(intLoop, 2))
rel.Fields.Append rel.CreateField(astr(intLoop, 3))
rel.Fields(astr(intLoop, 3)).ForeignName = astr(intLoop, 4)
dbBE.Relations.Append rel
Next intLoop
sExit:
On Error Resume Next
Set rel = Nothing
Set dbFE = Nothing
dbBE.Close
Set dbBE = Nothing
Exit Sub
E_Handle:
MsgBox Err.Description & vbCrLf & "sSplitdbFEWithRelationships", vbOKOnly + vbCritical, "Error: " & Err.Number
Resume sExit
End Sub
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:Ejecutar Codigo VBA

Publicado por JMAN (96 intervenciones) el 20/01/2009 21:11:47
no soy experto pero asi lo hago yo:

1. creas el boton de comando
2. vas a la hoja de propiedades del boton recien creado
3. en "eventos" vas a "al hacer clic" y presiona en el generador de expresiones (el boton con los 3 puntos) (...)
4. seleccionas "procedimiento de evento"
5. se abre el editor de codigo vba y te crea un sub botondecomando1_clic() con su respectivo end sub, dejandote el cursor en medio
6. pegas el codigo ahi mismo borrando la declaracion de procedimiento (eso creo)
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

RE:Ejecutar Codigo VBA

Publicado por Yeah (2 intervenciones) el 20/01/2009 21:27:12
No funciona
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

RE:Ejecutar Codigo VBA

Publicado por JMAN (96 intervenciones) el 20/01/2009 21:47:45
que pena
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

RE:Ejecutar Codigo VBA

Publicado por Angeles (22 intervenciones) el 21/01/2009 10:56:09
Creas el botón de comando
Botón derecho sobre este botón de comando
Vas a Generar Evento --> Generar Código, aquí pegas el código

Saludos, Angeles
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

RE:Ejecutar Codigo VBA

Publicado por Abel (1 intervención) el 20/08/2011 16:25:10
Mas simple de lo que yo creía. Grcaias por su aporte.
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

RE:Ejecutar Codigo VBA

Publicado por Roger (1 intervención) el 25/05/2013 04:38:59
Gracias me fuiste de gran ayuda.
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