Ventana de dialogo de windows y msgbox borra registro guardado en campo al dar cancelar

Por favor, necesito de su apoyo.
Tengo una formulario donde tengo un campo RutaArchivo y otro Archivo (obtengo solo el nombre del archivo), y 3 botones (cmdArchvo, Abrir y EliminarArchivo), ya logré insertar la ruta del archivo y obtener el nombre del archivo, el problema es que cuando ya tengo guardado un registro y doy eliminar (para que me borre el registro del campo "Archivo"), me muestra el msgbox, donde me dice que si estoy seguro de eliminar, pero si al final le doy en no, de todos modo me borra el registro, de igual forma pasa con cmdArchivo, cuando ya tengo un registro (ruta) guardada y quiero modificar pero después me arrepiento y doy en cancelar, también me lo borra, espero me haya explicado, Gracias
Anexo códigos.
Private Sub cmdArchivo_Click()
Dim fdg As FileDialog, vrtSelectedItem As Variant
Dim strSelectedFile As String
Dim strRutaArchivo As String
Set fdg = Application.FileDialog(msoFileDialogFilePicker)
With fdg
fdg.InitialFileName = "Mi Ruta de la carpeta"
.Title = "Seleccionar archivo"
.Filters.Clear
.Filters.Add "Archivos PDF (*.PDF)", "*.PDF"
.AllowMultiSelect = False
.InitialView = msoFileDialogViewDetails
If .Show = -1 Then
For Each vrtSelectedItem In .SelectedItems
strSelectedFile = vrtSelectedItem
Next vrtSelectedItem
Me![RutaArchivo] = strSelectedFile
End If
End With
Set fdg = Nothing
Me![Archivo] = Mid(strSelectedFile, InStrRev(strSelectedFile, "\") + 1)
End Sub
Private Sub EliminarArchivo_Click()
On Error GoTo Err_EliminarArchivo_Click
If MsgBox("¿Deseas eliminar el archivo relacionado?", vbYesNo + vbQuestion, _
"Atención") = vbNo Then
End If
Me.Archivo = ""
Exit_EliminarArchivo_Click:
Exit Sub
Err_EliminarArchivo_Click:
MsgBox Err.Description
Resume Exit_EliminarArchivo_Click
End Sub

1 Respuesta

Respuesta
1

Estos son los códigos que necesitas. Te pongo lo nuevo en negrita:

Private Sub cmdArchivo_Click()
Dim fdg As FileDialog, vrtSelectedItem As Variant
Dim strSelectedFile As String
Dim strRutaArchivo As String
Set fdg = Application.FileDialog(msoFileDialogFilePicker)
With fdg
fdg.InitialFileName = "Mi Ruta de la carpeta"
.Title = "Seleccionar archivo"
.Filters.Clear
.Filters.Add "Archivos PDF (*.PDF)", "*.PDF"
.AllowMultiSelect = False
.InitialView = msoFileDialogViewDetails
If .Show = -1 Then
For Each vrtSelectedItem In .SelectedItems
strSelectedFile = vrtSelectedItem
Next vrtSelectedItem
Me![RutaArchivo] = strSelectedFile

Me![Archivo] = Mid(strSelectedFile, InStrRev(strSelectedFile, "\") + 1)
End If
End With
Set fdg = Nothing
End Sub

Private Sub EliminarArchivo_Click()
On Error GoTo Err_EliminarArchivo_Click
If MsgBox("¿Deseas eliminar el archivo relacionado?", vbYesNo + vbQuestion, _
"Atención") = vbNo Then Exit Sub
Me.Archivo = ""
Exit_EliminarArchivo_Click:
Exit Sub
Err_EliminarArchivo_Click:
MsgBox Err.Description
Resume Exit_EliminarArchivo_Click
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas