Sendkeys

Status
Niet open voor verdere reacties.

reneemettrie

Terugkerende gebruiker
Lid geworden
1 aug 2006
Berichten
1.281
Ik wil een kopie van mijn database genaamd "MLA_Data.accdb" opslaan op Google Drive.
Vind geen commando voor Save As, dus ik probeer met SendKeys
Code:
Private Sub cmd_GoogleDrive_Click()
ChDrive "C"
ChDir "C:\Users\Renée\Google Drive\BRUM"
DoCmd.ShowToolbar "Ribbon", acToolbarYes
SendKeys "{F11}" 'navigatievenster
DoCmd.Close 'formulier sluiten
SendKeys "%{B}", True 'Alt bestand
SendKeys "{A}", True 'opslaan als
SendKeys "{A}", True 'Knop Opslaan als
SendKeys "%{O}", True 'Knop Opslaan
'SendKeys "{MLA_Data.accdb}"
'SendKeys "%{O}", True
End Sub

De code werkt, op het voorlaatste commando na
(dat daarom als commentaar staat):
Code:
SendKeys "{MLA_Data.accdb}"
Daar krijg ik de melding:" fout 5: ongeldige procedure aanroep"

Wat doe ik fout?
 
Laatst bewerkt:
Omdat niemand reageert, wat natuurlijk logisch is met zo'n vraagstelling, zal ik het maar doen...

Wat bedoel je precies?
Welk programma heb je het over?
Waar zie je wat niet?
 
Daarnaast kan SendKeys niet een hele string ineens sturen, daar is 'ie niet voor bedoeld.
 
Omdat niemand reageert, wat natuurlijk logisch is met zo'n vraagstelling, zal ik het maar doen...

Wat bedoel je precies?
Welk programma heb je het over?
Waar zie je wat niet?

Ik zit toch op het Access forum, of vergis ik me?
Waar schrijf ik dat ik iets niet zie?
 
Daarnaast kan SendKeys niet een hele string ineens sturen, daar is 'ie niet voor bedoeld.

OK, bedankt. Ik ben in elk geval al blij dat ik het mankeren van een SaveAs opdracht in VBA grotendeels omzeild heb.
Zou ik een string in een variabele kunnen stoppen en dan schrijven Sendkeys "{" & naamvariabele & "}" ?
 
Dat lijkt me duidelijk. Die accolades moet je daarbij overigens vergeten:
Code:
    pad = "MLA_Data.accdb"
    For i = 1 To Len(pad)
        SendKeys Mid(pad, i, 1)
    Next i

Maar ik zou wachten op OctaFish die naar ik verwacht wel een betere oplossing dan SendKeys voor je heeft.
 
Laatst bewerkt:
Leek me een prima oplossing maar...
Er gebeurt iets raars...

Ik heb nu de code zo gewijzigd (hetgeen niet werkt, onderaan, staat in commentaar) :

Code:
Private Sub cmd_GoogleDrive_Click()
Dim i As Byte, naam As String, pos As Byte
ChDrive "C"
ChDir "C:\Users\Renée\Google Drive\BRUM"
naam = CurrentDb.Name
pos = InStrRev(naam, "\", Len(naam))

naam = Right(naam, Len(naam) - pos)
naam = Left(naam, Len(naam) - 6) '.accdb eraf
MsgBox naam

DoCmd.ShowToolbar "Ribbon", acToolbarYes
SendKeys "{F11}"
DoCmd.Close
SendKeys "%{B}", True 'Alt bestand
SendKeys "{A}", True 'opslaan als
SendKeys "{A}", True 'Knop Opslaan als
SendKeys "%{O}", True 'Knop Opslaan

'For i = 1 To Len(naam)
'    SendKeys Mid(naam, i, 1), True
'   Debug.Print Mid(naam, i, 1),
'Next i



End Sub

Het debug.print commando levert de correcte naam op
Maar het bestand wordt
-ofwel bewaard als :"MLA_Data1" (ik denk dat dit door Google drive komt)
-ofwel verschijnen enkel de laatste letters van de naam, en niet altijd evenveel.
Ik denk dat ik die laatste stap gewoon ga moeten weglaten...
Het is geen ramp, het bestand staat al in Google drive dus ik moet enkel op de naam ervan klikken en opslaan.

Ben benieuwd of Octafish hier een oplossing heeft...
 
Even een update.
In de code de bestandsnaam invullen heeft uiteindelijk geen zin. Access stelt zelf de bestaande bestandsnaam voor, gevolgd door een 1 (wellicht omdat het een cloud toepassing is)
 
Dit werkt prima met OneDrive.
Code:
Private Sub Knop110_Click()
    OneDrive
End Sub

Code:
Function OneDrive()
Dim myFile As String
    ChDrive "C"
    ChDir "C:\Users\Michel\OneDrive\_HelpMij\Ms Access\astra\Opvolging1"
    myFile = Dir("C:\Users\Michel\OneDrive\_HelpMij\Ms Access\astra\Opvolging1\MLA_Data.accdb")
    If Not myFile & "" = "" Then
        Kill "C:\Users\Michel\OneDrive\_HelpMij\Ms Access\astra\Opvolging1\MLA_Data.accdb"
    End If
    DoCmd.Close acForm, Form.Name   'formulier sluiten
    DoCmd.ShowToolbar "Ribbon", acToolbarYes
    SendKeys "{F11}" 'navigatievenster
    SendKeys "%{B}", True 'Alt bestand
    SendKeys "{V}", True 'opslaan als
    SendKeys "MLA_Data.accdb"
    SendKeys "%{O}", True 'Knop Opslaan
    SendKeys "{J}", True 'opslaan als
End Function
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan