tag:blogger.com,1999:blog-1469885274969279442024-03-13T10:04:11.173-07:00Todo Access EHUBlog creado Por Joseba Velez y Francisco José Quintana con la intención de recuperar experiencias de Visual Basic y Access.Unknownnoreply@blogger.comBlogger6125tag:blogger.com,1999:blog-146988527496927944.post-90186718768069154722012-09-19T05:52:00.001-07:002012-09-19T05:52:40.517-07:00llenar los campos de una plantilla de word<span style="background-color: white;"><span style="font-family: Arial; font-size: 11px;">Requerimiento previo, incluir en el menú Herramientas -> Referencias</span></span><br />
<br />
<br />
la de "Microsoft Word X.X Object Library"<br />
<br />
<br />
<br />
En la plantilla deberás insertar "marcadores" que serán sustituidos<br />
<br />
cuando se ejecute el procedimiento por el contenido del campo en la<br />
<br />
base de datos.<br />
<br />
<br />
<br />
En el procedimiento se hace uso tanto del "nombre" del marcador, como<br />
<br />
del nombre del cuadro de texto del formulario.<br />
<br />
<br />
<br />
-------------Inicio de copia del<br />
<br />
procedimiento-------------------------------<br />
<br />
<br />
<br />
Private Sub CmdCombinar_Click()<br />
<br />
On Error GoTo Err_cmdCombinar<br />
<br />
<br />
<br />
Dim AppWord As Word.Application<br />
<br />
Dim DocWord As Word.Document<br />
<br />
Dim Resp As Long<br />
<br />
'<br />
<br />
' Variable con el nombre completo del fax a guardar.<br />
<br />
'<br />
<br />
Dim FileName As String<br />
<br />
'<br />
<br />
'Variable en la que se tiene u obtiene el nombre de la plantilla.<br />
<br />
'<br />
<br />
Dim Plantilla As String<br />
<br />
'<br />
<br />
' Variable en la que se tiene u obtiene el nombre del directorio de<br />
<br />
los fax.<br />
<br />
'<br />
<br />
Dim DirFax As String<br />
<br />
<br />
<br />
Plantilla = "C:\Plantillas\Plantilla.dot"<br />
<br />
DirFax = "C:\Faxes\<br />
<br />
<br />
<br />
'<br />
<br />
' Abrir el Word utilizando la plantilla.<br />
<br />
' <br />
<br />
AppWord.Documents.Add Template:=Plantilla, NewTemplate:=False<br />
<br />
Set DocWord = AppWord.ActiveDocument<br />
<br />
'<br />
<br />
' Comprobar existencia de un marcador llamado 'PersonaContacto', si<br />
<br />
existe<br />
<br />
' y el contenido del cuadro de texto del formulario no es nulo se<br />
<br />
introduce<br />
<br />
' en el documento.<br />
<br />
<br />
<br />
If DocWord.Bookmarks.Exists("PersonaContacto") Then<br />
<br />
If Not IsNull(PersonaContacto) Then<br />
<br />
DocWord.Bookmarks("PersonaContacto").Select<br />
<br />
Texto = PersonaContacto<br />
<br />
DocWord.Application.Selection.TypeText Text:=Texto<br />
<br />
End If<br />
<br />
End If<br />
<br />
<br />
<br />
If DocWord.Bookmarks.Exists("CabeceraFax") Then<br />
<br />
If Not IsNull(CabeceraFax) Then<br />
<br />
DocWord.Bookmarks("CabeceraFax").Select<br />
<br />
Texto = CabeceraFax<br />
<br />
DocWord.Application.Selection.TypeText Text:=Texto<br />
<br />
End If<br />
<br />
End If<br />
<br />
<br />
<br />
If DocWord.Bookmarks.Exists("Fax") Then<br />
<br />
If Not IsNull(Fax) Then<br />
<br />
DocWord.Bookmarks("Fax").Select<br />
<br />
Texto = Fax<br />
<br />
DocWord.Application.Selection.TypeText Text:=Texto<br />
<br />
End If<br />
<br />
End If<br />
<br />
<br />
<br />
If DocWord.Bookmarks.Exists("Remite") Then<br />
<br />
If Not IsNull(Remite) Then<br />
<br />
DocWord.Bookmarks("Remite").Select<br />
<br />
Texto = Remite<br />
<br />
DocWord.Application.Selection.TypeText Text:=Texto<br />
<br />
End If<br />
<br />
End If<br />
<br />
<br />
<br />
If DocWord.Bookmarks.Exists("Remite2") Then<br />
<br />
If Not IsNull(Remite) Then<br />
<br />
DocWord.Bookmarks("Remite2").Select<br />
<br />
Texto = Remite<br />
<br />
DocWord.Application.Selection.TypeText Text:=Texto<br />
<br />
End If<br />
<br />
End If<br />
<br />
<br />
<br />
If DocWord.Bookmarks.Exists("Direccion1") Then<br />
<br />
If Not IsNull(Direccion1) Then<br />
<br />
DocWord.Bookmarks("Direccion1").Select<br />
<br />
Texto = Direccion1<br />
<br />
DocWord.Application.Selection.TypeText Text:=Texto<br />
<br />
End If<br />
<br />
End If<br />
<br />
<br />
<br />
If DocWord.Bookmarks.Exists("Direccion2") Then<br />
<br />
If Not IsNull(Direccion2) Then<br />
<br />
DocWord.Bookmarks("Direccion2").Select<br />
<br />
Texto = Direccion2<br />
<br />
DocWord.Application.Selection.TypeText Text:=Texto<br />
<br />
End If<br />
<br />
End If<br />
<br />
<br />
<br />
If DocWord.Bookmarks.Exists("Tlf") Then<br />
<br />
If Not IsNull(Rs!Tlf) Then<br />
<br />
DocWord.Bookmarks("Tlf").Select<br />
<br />
Texto = Rs!Tlf<br />
<br />
DocWord.Application.Selection.TypeText Text:=Texto<br />
<br />
End If<br />
<br />
End If<br />
<br />
<br />
<br />
If DocWord.Bookmarks.Exists("FechaFax") Then<br />
<br />
DocWord.Bookmarks("FechaFax").Select<br />
<br />
Texto = Format(Date, "dd/mm/yyyy")<br />
<br />
DocWord.Application.Selection.TypeText Text:=Texto<br />
<br />
End If<br />
<br />
<br />
<br />
AppWord.Visible = True<br />
<br />
AppWord.ActiveDocument.SaveAs FileName<br />
<br />
AppWord.WindowState = wdWindowStateMaximize<br />
<br />
<br />
<br />
Exit_cmdCombinar:<br />
<br />
DoCmd.Hourglass False<br />
<br />
Exit Sub<br />
<br />
<br />
<br />
Err_cmdCombinar:<br />
<br />
<br />
<br />
If Err = 91 Or Err = -2147023174 Then<br />
<br />
Set AppWord = New Word.Application<br />
<br />
Resume<br />
<br />
End If<br />
<br />
<br />
<br />
MsgBox Err & " " & Err.Description & Chr$(13) & Chr$(13) &<br />
<br />
Plantilla<br />
<br />
Resume Exit_cmdCombinar<br />
<br />
<br />
<br />
End Sub<br />
<br />
<br />
<br />
-------------------Fin del procedimiento<br />
<br />
copiado-----------------------------<br />
<br />
<br />
<br />
En este ejemplo el nombre que se puso a los marcadores en la plantilla<br />
<br />
Word es el mismo que el que tenían los cuadros de texto en el<br />
<br />
formulario pero pueden ser diferentes.<br />
<br />
<br />
<br />
Si se necesita introducir la misma información en dos lugares<br />
<br />
diferentes del fax, como ocurre en éste caso, debes definir dos<br />
<br />
marcadores con dos nombres diferentes, aunque incluyas la misma<br />
<br />
información.<br />
<br />
<br />
<br />
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-146988527496927944.post-20012966421477061122011-04-06T14:21:00.000-07:002011-04-06T14:22:57.406-07:00Función para copiar el path de un archivo y utilizarlo en un formulario o en una varialbleOption Compare Database<br />
<br />
Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _<br />
"GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long<br />
<br />
Private Type OPENFILENAME<br />
lStructSize As Long<br />
hwndOwner As Long<br />
hInstance As Long<br />
lpstrFilter As String<br />
lpstrCustomFilter As String<br />
nMaxCustFilter As Long<br />
nFilterIndex As Long<br />
lpstrFile As String<br />
nMaxFile As Long<br />
lpstrFileTitle As String<br />
nMaxFileTitle As Long<br />
lpstrInitialDir As String<br />
lpstrTitle As String<br />
flags As Long<br />
nFileOffset As Integer<br />
nFileExtension As Integer<br />
lpstrDefExt As String<br />
lCustData As Long<br />
lpfnHook As Long<br />
lpTemplateName As String<br />
End Type<br />
<br />
Function LaunchCD(strform As Form) As String<br />
Dim OpenFile As OPENFILENAME<br />
Dim lReturn As Long<br />
Dim sFilter As String<br />
OpenFile.lStructSize = Len(OpenFile)<br />
OpenFile.hwndOwner = strform.Hwnd<br />
sFilter = "All Files (*.*)" & Chr(0) & "*.*" & Chr(0) & _<br />
"JPEG Files (*.JPG)" & Chr(0) & "*.JPG" & Chr(0)<br />
OpenFile.lpstrFilter = sFilter<br />
OpenFile.nFilterIndex = 1<br />
OpenFile.lpstrFile = String(257, 0)<br />
OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1<br />
OpenFile.lpstrFileTitle = OpenFile.lpstrFile<br />
OpenFile.nMaxFileTitle = OpenFile.nMaxFile<br />
OpenFile.lpstrInitialDir = "C:\"<br />
OpenFile.lpstrTitle = "Select a file using the Common Dialog DLL"<br />
OpenFile.flags = 0<br />
lReturn = GetOpenFileName(OpenFile)<br />
If lReturn = 0 Then<br />
MsgBox "A file was not selected!", vbInformation, _<br />
"Select a file using the Common Dialog DLL"<br />
Else<br />
LaunchCD = Trim(Left(OpenFile.lpstrFile, InStr(1, OpenFile.lpstrFile, vbNullChar) - 1))<br />
End If<br />
End Function<br />
<br />
<br />
<br />
<br />
En el odigo del botón:<br />
<br />
Private Sub Comando0_Click()<br />
Fichero = LaunchCD(Me)Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-146988527496927944.post-48696650413137816842011-02-27T23:47:00.000-08:002011-02-27T23:48:10.128-08:00Reiniciar campo autonumerico AccessOption Compare Database<br />Public strNombreTabla As String<br />Public strNombreCampo As String<br />Public ValorInicial As Integer<br /><br /><br />Function ReiniciarAutonumerico(strNombreTabla, strNombreCampo, ValorInicial)<br />Dim cat As Object<br />Dim t As Object<br />Dim col As Object<br />Dim p As Object<br /><br /><br />Set cat = CreateObject("ADOX.Catalog")<br />Set cat.ActiveConnection = CurrentProject.Connection<br /><br />Set t = cat.Tables(strNombreTabla)<br />Set col = t.Columns(strNombreCampo)<br />Set p = col.Properties("Seed")<br /><br />If IsMissing(ValorInicial) Then<br />p.Value = Nz(DMax(strNombreCampo, strNombreTabla), 1)<br />Else<br />p.Value = ValorInicial<br />End If<br /><br />Set p = Nothing<br />Set col = Nothing<br />Set t = Nothing<br />Set cat = Nothing<br /><br /><br />End Function<br /><br />Código del botón que llama función:<br /><br />Private Sub Comando0_Click()<br />Dim strNombreTabla As String<br />Dim strNombreCampo As String<br />strNombreTabla = Me.strNombreTabla<br />strNombreCampo = Me.strNombreCampo<br /><br />retorno = Módulo1.ReiniciarAutonumerico(strNombreTabla, strNombreCampo, 1)<br /><br />End SubUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-146988527496927944.post-58605178110186840072010-06-30T04:04:00.001-07:002010-06-30T04:07:24.363-07:00RV: Crear hojas Excel<div class="WordSection1"><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;color:#00b050;" >'****** Crear Hoja Excel <?xml:namespace prefix = o /><o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;color:#00b050;" >'******************************<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > </span><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" >Dim H As Long<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > Dim V As Long<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > Dim MiBase As Database<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > Dim MiTabla As Recordset<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > <span style="color:#1f497d;"> </span>Dim objExcel As Excel.Application<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="color:#1f497d;"><o:p> </o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > On Error GoTo ErrorExcel<span style="color:#1f497d;"><o:p></o:p></span></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;color:#00b050;" > 'Set MiBase = OpenDatabase(CurrentProject.Path & "\db1.mdb")<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;color:#00b050;" > </span><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;color:#00b050;" >'Esta linea anterior, por si deseamos abrir una tabla de cualquier<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;color:#00b050;" > 'otra MDB. En este ejemplo abrimos una tabla Local (Excel).<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;color:#00b050;" ><o:p> </o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > </span><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" >Set MiBase = CurrentDb<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > Set MiTabla = MiBase.OpenRecordset(SQL)<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" ><o:p> </o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > </span><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" >If MiTabla.RecordCount = 0 Then<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > MsgBox "La base de datos esta vacia", vbCritical + vbOKOnly, "AVISO"<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > </span><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" >Exit Sub<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > End If<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" ><o:p> </o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > Set objExcel = New Excel.Application<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > objExcel.Visible = False 'Ocultamos la aplicación excell<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > objExcel.SheetsInNewWorkbook = 1 <span style="color:#00b050;">'determina el numero de hojas <o:p></o:p></span></span></p><p class="MsoNormal" style="MARGIN-LEFT: 141.6pt; TEXT-INDENT: 35.4pt; LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;color:#00b050;" > ‘que se mostrara en el Excel<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > objExcel.Workbooks.Add 'Crea el Libro<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" ><o:p> </o:p></span></p><p class="MsoNormal" style="MARGIN-LEFT: 70.9pt; TEXT-INDENT: -49.6pt; LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" >With objExcel.ActiveSheet <span style="color:#00b050;">'cogemos la hoja activa de Excel<o:p></o:p></span></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;color:#00b050;" > 'Definimos un rango y pintamos una linea alrededor<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" ><o:p> </o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > </span><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" >.Range(.Cells(1, 1), .Cells(1, 4)).Borders.LineStyle = xlContinuous <o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > </span><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" >'Llenamos celdas con texto fijo<o:p></o:p></span></p><p class="MsoNormal"><span style="font-family:'Courier New';font-size:8;"> .Cells(3, 1) = "ANO"<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" ><o:p> </o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > </span><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" >.Range(.Cells(3, 1), .Cells(3, 13)).Font.Bold = True <span style="color:#00b050;">' definimos un rango <o:p></o:p></span></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;color:#00b050;" > </span><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;color:#00b050;" >‘y ponemos el texto en negrita<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > ‘<span style="color:#00b050;">Definimos formato de columnas</span><o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > .Columns("D").HorizontalAlignment = xlHAlignRight<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > </span><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" >.Columns("A").ColumnWidth = 30<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > .Columns("B").ColumnWidth = 30<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > </span><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" >.Columns("C").ColumnWidth = 30<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > .Columns("D").ColumnWidth = 15<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > .Columns("E").NumberFormat = "dd/mm/yyyy"<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > .Columns("M").NumberFormat = "dd/mm/yyyy"<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" ><o:p> </o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > End With<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" ><o:p> </o:p></span></p><p class="MsoNormal" style="MARGIN-LEFT: 21.3pt; LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" >objExcel.ActiveSheet.Cells(1, 1) = "Titulo de Cabecera"<o:p></o:p></span></p><p class="MsoNormal" style="MARGIN-LEFT: 21.3pt; LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" >objExcel.ActiveSheet.Range(objExcel.ActiveSheet.Cells(1, 1), _<o:p></o:p></span></p><p class="MsoNormal" style="MARGIN-LEFT: 21.3pt; LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" >objExcel.ActiveSheet.Cells(1, 4)).HorizontalAlignment = xlHAlignCenterAcrossSelection<o:p></o:p></span></p><p class="MsoNormal" style="MARGIN-LEFT: 21.3pt; LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" >With objExcel.ActiveSheet.Cells(1, 1).Font<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > .Color = vbRed<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > .Size = 14<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > .Bold = True<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > End With<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > <o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > V = 4<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > H = 1<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > Do While Not MiTabla.EOF<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > DoEvents<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > objExcel.ActiveSheet.Cells(V, H) = MiTabla.Fields!ANO_PRESUP<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > objExcel.ActiveSheet.Cells(V, H + 1) = MiTabla.Fields!campo1<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > objExcel.ActiveSheet.Cells(V, H + 2) = MiTabla.Fields!campo2<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > ‘……………………………………………………………………<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > objExcel.ActiveSheet.Cells(V, H + 11) = MiTabla.Fields!campoN<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > <o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > </span><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" >MiTabla.Edit<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > MiTabla.Fields![Fecha de asignación] = Date<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > MiTabla.Update<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > objExcel.ActiveSheet.Cells(V, H + 12) = MiTabla.Fields![Fecha de asignación]<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > <o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > V = V + 1<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > MiTabla.MoveNext<o:p></o:p></span></p><p class="MsoNormal" style="MARGIN-LEFT: 21.3pt; LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > </span><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" >Loop<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > <o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > 'V = V + 3<o:p></o:p></span></p><p class="MsoNormal" style="MARGIN-LEFT: 21.3pt; LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" >'objExcel.Range(objExcel.Cells(V, 1), objExcel.Cells(V, 4)).Borders.LineStyle = xlContinuous<o:p></o:p></span></p><p class="MsoNormal" style="MARGIN-LEFT: 21.3pt; LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" >'objExcel.ActiveSheet.Range(objExcel.ActiveSheet.Cells(V, 1), objExcel.ActiveSheet.Cells(V, 4)).HorizontalAlignment = xlHAlignCenterAcrossSelection<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > 'objExcel.ActiveSheet.Cells(V, 1) = "Fec: Código Web del Programador"<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > <o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" ><o:p> </o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > objExcel.DisplayAlerts = False<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > Fecha = Replace(Date, "/", "_")<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > Filename = "Tareas_" & Fecha<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > objExcel.ActiveWorkbook.SaveAs Filename, , , , , , , xlLocalSessionChanges<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > objExcel.ActiveWorkbook.Close<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > MiBase.Close<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > objExcel.Quit<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > </span><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" >Set objExcel = Nothing<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" >Me.Estado.Caption = "Se ha creado el fichero "<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" >MsgBox ("Se ha creado el fichero ")<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" >Me.Estado.Caption = ""<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" >Exit Sub<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > <o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" >ErrorExcel:<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > <o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > MsgBox "Ha ocurrido un error de conexión con Excel." </span><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" >_<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > & Chr(13) & Chr(13) & "Error : " & Err.Number _<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > & Chr(13) & "Info : " & Err.Description _<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span lang="EN-US" style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > </span><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" >& Chr(13) & "Objeto : " & Err.Source _<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > & Chr(13) & Chr(13) & "Revisa las referencias y la ruta de la base de datos. ", vbCritical, "Paco Avisa: Error al conectar con Excel"<o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" > <o:p></o:p></span></p><p class="MsoNormal" style="LINE-HEIGHT: 100%"><span style="LINE-HEIGHT: 100%;font-family:'Courier New';font-size:8;" >End Sub<o:p></o:p></span></p><p class="MsoNormal"><o:p> </o:p></p></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-146988527496927944.post-90451129277083983402010-06-29T02:37:00.000-07:002010-06-29T03:46:32.750-07:00Function Modificar Mayusculas Minusculas (texto)Function ModificarMayusculasMinusculas(texto) <br /><br /><br />'Esta función devuelve la cadena (texto) convertida en palabras<br />'que empiezan con mayuscula<br /><br />Dim CadenA As String<br />Dim ANSI As Variant<br />Dim Numero As Integer<br /><br />CadenA = LCase(texto)<br />Mid(CadenA, 1, 1) = UCase(Left(CadenA, 1))<br />For Numero = 2 To Len(CadenA) - 1<br /><br />ANSI = Asc(Mid(CadenA, Numero, 1))<br />If ANSI < 65 Or ANSI > 122 Or (ANSI > 90 And ANSI < 97) Then<br />If ANSI <> 241 Then<br /><br />Mid(CadenA, Numero + 1, 1) = UCase(Mid(CadenA, Numero + 1, 1))<br /><br />End If<br /><br />End If<br /><br />Next Numero<br /><br />Mayusculas = CadenA<br />End FunctionUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-146988527496927944.post-21269803575186876672010-06-25T00:26:00.000-07:002010-06-29T23:58:28.878-07:00Control de errores para aplicaciones robustas<div style="TEXT-ALIGN: justify"><span style="color:#000000;">Cuando se trabaja en el control de errores de Access, éstas son las instrucciones que se pueden utilizar: </div><div style="TEXT-ALIGN: justify"><br /><span style="color:#3333ff;">On Error<br />Resume<br />Exit </span></div><span style="color:#3333ff;"><div style="TEXT-ALIGN: justify"><br /></span><span style="color:#3333ff;">On Error:</span> </div><div style="TEXT-ALIGN: justify">permite especificar dónde se quiere exactamente que Access actúe cuando suceda un error.<br />La instrucción On Error tiene variables utilizadas para direccionar. </div><div style="TEXT-ALIGN: justify"><br /><span style="color:#3333ff;">On Error Goto</span>: tiene dos opciones : </div><div style="TEXT-ALIGN: justify"><br /><span style="color:#3333ff;">Numero Línea,</span> que puede ser un número situado en el procedimiento<br /><span style="color:#3333ff;">Etiqueta Línea,</span> que es una etiqueta que especifica el inicio de una sección de un procedimiento.</div><div style="TEXT-ALIGN: justify"></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;"><span style="color:#330033;">El código siguiente crea un controlador de errores muy simple.</span></span></div><div style="TEXT-ALIGN: justify"><span style="color:#330033;"> </span></div><div style="TEXT-ALIGN: justify"></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;"></span></div><div style="TEXT-ALIGN: justify"></div><span style="color:#3333ff;"></span><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">Sub SimpleError(intNumerator As Integer, intDenominator As Integer) </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">On Error GoTo SimpleError_Error </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">Debug.Print intNumerator / intDenominator </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">SimpleError_Error: </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">MsgBox Err.Description, vbCritical, "Ha ocurrido un error" </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">Exit Sub </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">End Sub</span> </div><div style="TEXT-ALIGN: justify"><br />Este procedimiento muestra un mensaje de error “Ha ocurrido un error” y sale del mismo. Es mejor que el presentado en la figura anterior. Después de recibir el usuario este mensaje, la ejecución del programa sale directamente debido al error producido. </div><div style="TEXT-ALIGN: justify"><br /></div><div style="TEXT-ALIGN: justify">La instrucción <span style="color:#3333ff;">On Error Resume Next</span>: </div><div style="TEXT-ALIGN: justify"><br />Se utiliza cuando el programa necesita continuar en la línea que sigue inmediatamente a la que originó el error. Un ejemplo sucede cuando se intenta eliminar una tabla que ya ha sido eliminada. El código para éste ejemplo es el siguiente: </div><div style="TEXT-ALIGN: justify"> </div><div style="TEXT-ALIGN: justify"></div><div style="TEXT-ALIGN: justify"></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">Sub InlineResumeNextExample() '</span><span style="color:#009900;">Esta instrucción dice a Access que ignore los errores y '—salte a la siguiente línea. </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">On Error Resume Next </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">DoCmd.DeleteObject acTable, "UnaTabla" </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">End Sub </span></div><div style="TEXT-ALIGN: justify"><br />El siguiente código utiliza la instrucción Exit Sub para salir del procedimiento después de mostrar el error. </div><div style="TEXT-ALIGN: justify"> </div><div style="TEXT-ALIGN: justify"></div><div style="TEXT-ALIGN: justify"></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">Sub SimpleError(intNumerator As Integer, intDenominator As Integer) </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">On Error GoTo SimpleError_Error </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">Debug.Print intNumerator / intDenominator </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">SimpleError_Error: </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">MsgBox Err.Description, vbCritical, "Ha ocurrido un error" </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">Exit Sub </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">End Sub</span> </div><div style="TEXT-ALIGN: justify"><br />Las instrucciones <span style="color:#3333ff;">Resume</span>, <span style="color:#3333ff;">Resume Next</span> y <span style="color:#3333ff;">Resume Etiqueta línea</span> se utilizan dentro del controlador de errores para continuar con el procedimiento después de tratar el error. </div><div style="TEXT-ALIGN: justify"><br />La instrucción Resume devuelve la ejecución del procedimiento a la línea en la que ocurrió el error. </div><div style="TEXT-ALIGN: justify"><br /><span style="color:#3333ff;">Sub ResumeExample(intNumerator As Integer, intDenominator As Integer) </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">On Error GoTo Error_ResumeExample </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">DoCmd.CopyDatabaseFile "C:\Mis BD\MiBD.mdb", True </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">Exit Sub </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">Error_ResumeExample: </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">Msgbox “ Compruebe que hay disco en la disquetera e intente de nuevo.“ </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">Resume </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">End Sub</span></div><div style="TEXT-ALIGN: justify"><br />La instrucción Resume Next proporciona la capacidad de dar un mensaje, tratar el error y desplazarse a la siguiente línea de código posterior a la que originó el error. </div><div style="TEXT-ALIGN: justify"> </div><div style="TEXT-ALIGN: justify"></div><div style="TEXT-ALIGN: justify"></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">Sub ResumeNextExample() </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">On Error GoTo Error_ResumeNextExample </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">DoCmd.DeleteObject acTable, "CualquierTabla" </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">Exit Sub Error_ResumeNextExample: </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">MsgBox Err.Description, vbCritical, "Error al intentar eliminar la tabla" </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">Resume Next </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">End Sub</span> </div><div style="TEXT-ALIGN: justify"> </div><div style="TEXT-ALIGN: justify"></div><div style="TEXT-ALIGN: justify"></div><div style="TEXT-ALIGN: justify">La instrucción Resume Etiqueta línea permite continuar en la etiqueta de línea especificada. Esta instrucción se utiliza habitualmente para crear una salida del procedimiento. </div><div style="TEXT-ALIGN: justify">Sub ResumeLineLabelExample() </div><div style="TEXT-ALIGN: justify"> </div><div style="TEXT-ALIGN: justify"></div><div style="TEXT-ALIGN: justify"></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">On Error GoTo Error_ResumeLineLabelExample </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">DoCmd.DeleteObject acTable, "NoTable" '—Esta etiqueta inicia la salida del procedimiento Exit_ResumeLineLabelExample: </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">Exit Sub '—Esta etiqueta es para tartar el error<br />Error_ResumeLineLabelExample: </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">MsgBox Err.Description, vbCritical, "Error al eliminar la tabla" Resume Exit_ResumeLineLabelExample </span></div><div style="TEXT-ALIGN: justify"><span style="color:#3333ff;">End Sub </span></div><div style="TEXT-ALIGN: justify"></div><div style="TEXT-ALIGN: justify"></div><div style="TEXT-ALIGN: justify"></span></div>Unknownnoreply@blogger.com0