Anti-FAQ: Nieznane wywołania funkcji SysCmd.
Krzysztof Naworyta
(opracowanie na podstawie wybranych fragmentów z postów KN)
 

O czym informuje nieudokumentowana funkcja SysCmd(715)?

'Acc2000
? SysCmd(715)
4506

Zwrócona, przykładowa wartoć 4506 oznacza numer kompilacji (tzw. Build) pliku MSACCESS.EXE. Pozwala to wykryć zainstalowane poprawki (Service Packs) lub wersję zakupionego pakietu.

Więcej na temat innych sposóbów wykrywania wersji plików wykonywalnych pakietu Office, można znaleć na stronie: http://www.mvps.org/access/api/api0065.htm

***
A teraz, o pisaniu w Access'ie (2000) wieloma językami...
Jak programowo w Access'ie przełączać klawiaturę:
polska> grecka > rosyjska > turecka itd.?

O ile do samodzielnego przełączania klawiatury możemy ustawić globalny
windowsowy gorący klawisz - co pozwala różnymi czcionkami (językami) pisać
nawet w tym samym polu - to jak to zrobić programowo ?

Np. mamy tabele z polami [polski], [grecki], [rosyjski].
Dzięki funkcji SysCmd z parametrem 710, jest to proste:

Private Sub grecki_Enter()
  SysCmd 710, 67634184 'GR
End Sub

Private Sub grecki_Exit(Cancel As Integer)
  SysCmd 710, 68486165 'PL
End Sub

Private Sub rosyjski_Enter()
  SysCmd 710, 68748313 'RU
End Sub

Private Sub rosyjski_Exit(Cancel As Integer)
  SysCmd 710, 68486165 'PL
End Sub

Oczywiście to tylko szkic - klawiatury musza być w systemie zainstalowane, bo inaczej SysCmd zwróci niepowodzenie = 0

***
I jeszcze jedna nieudokumentowana funkcja:

SysCmd(609)
Zwraca PID procesu (to samo co zwraca Shell() )

Do czego to wykorzystać? Mnie się nasunęło jedno wykorzystanie, odnośnie automatyzacji:
"Schowek Ctrl+C Ctrl+V"

'(...)
x = Shell(app & " " & _
           Chr(34) & dbs & Chr(34) & _
           " /nostartup" & _
           " /user " & usr & _
           " /pwd " & pas & _
           " /wrkgrp " & Chr(34) & wrk & Chr(34), _
           vbMinimizedFocus)

Set accObj = GetObject(dbs)

No właśnie - czy accObj jest tą aplikacją wywołaną Shell'em, czy kolejną lub poprzednią instancją?

If accObj.SysCmd(609)<>x Then
    ' to inna instancja !

--
KN