Hoe te detecteren of de gebruiker InputBox annuleert

Status
Niet open voor verdere reacties.

Kirana2014

Gebruiker
Lid geworden
21 okt 2020
Berichten
55
Ik heb een invoervak ​​waarin de gebruiker wordt gevraagd om op OK te klikken om door te gaan! gegevens exporteren vanuit MS Access naar Excel. Hoe laat ik het programma weten dat het moet afsluiten zonder gegevens van MS Access naar Excel te exporteren als de gebruiker op Annuleren klikt.

Met onderstaande VBA wanneer ik op annuleer klik, exporteert het programma nog steeds gegevens van Access naar Excel

Als ik op annuleer klik het programma Exit Sub

Code:
Private Sub Command97_Click()
Dim filepath As String
Dim sSheetName As String
sSheetName = InputBox("Click OK to continue!", Default:="Apple")
filepath = "C:\Data\Output_Results.xlsx"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Data Qry", filepath, True, sSheetName
MsgBox ("The Data has been successfully exported")
End Sub
 
Laatst bewerkt:
Om te beginnen: je Msgbox staat helemaal achteraan; alle code is dan al uitgevoerd. Dat is dus nutteloos. Je moet beginnen met de MsgBox. Dus zo:
Code:
Dim filepath As String, sSheetName As String
    If MsgBox("Wil je exporteren?", vbYesNo) = vbYes Then
        sSheetName = InputBox("Click OK to continue!", Default:="Apple")
        filepath = "C:\Data\Output_Results.xlsx"
        DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Data Qry", filepath, True, sSheetName
    End If
En geef je knoppen zinvolle namen, zoals comExport o.i.d.; weet jij volgende maand nog uit he hoofd waarvoor Command97 bedoeld is?
 
Niet echt iets waar we als helpers veel aan hebben. Omschrijf je probleem dan om te beginnen eens wat beter, maar nog veel mooier natuurlijk is om de db er zelf bij te doen.
 
@OctaFish, Over onnodig quoten gesproken; Gebruik de grote blauwe knop 'Reageer op bericht' Het is natuurlijk wel een vaak gemaakte beginnersfout....:p

De knop annuleer is net zo nuttig als de knop nee. Of je wilt doorgaan met iets of je wilt het niet. Door te toetsen op Ja/Yes = VbYes weet je zeker dat de gebruiker door wil gaan.

Voor een inputbox
Code:
Sub VenA()
  x = InputBox("Click OK to continue!", "geen idee", "Apple")
  If x = "" Then MsgBox "U hebt op Cancel geklikt" Else MsgBox x
End Sub

Voor een Msgbox
Code:
Sub VenA1()
  y = MsgBox("Gaan we door", vbYesNoCancel, "Doorgaan")
  Select Case y
    Case 2: c00 = "Cancel"
    Case 6: c00 = "Yes"
    Case 7: c00 = "No"
  End Select
  MsgBox c00
End Sub

Maar inderdaad met een opmerking 'Werkt niet' kunnen weinigen wat.
 
Laatst bewerkt:
Ondertussen weet ik nog steeds niet wat er niet werkt. Blijkbaar heeft de vraag niet zo'n hoge prioriteit :). Laten we dan maar de volledig werkende code plaatsen.
Code:
Private Sub Command97_Click()
Dim filepath As String, sSheetName As String
    
    sSheetName = InputBox("Click OK to continue!", Default:="Apple")
    If Not sSheetName = "" Then
        filepath = "C:\Data\Output_Results.xlsx"
        DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Data Qry", filepath, True, sSheetName
        MsgBox "The Data has been successfully exported"
    End If
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan