1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
* С глубокой признательностью я размещаю здесь следующий синтаксис.
* Его автор: Tom Dierickx dierickx@healthyexchanges.com.
* Ray, 11.06.2001.

Прелесть в том, что хотя в обоих случаях импорт производится с помощью драйверов ODBC,
DSN не используется. Ну, почти не используется (в первом случае). Вместе с Access инсталлируется
общий DSN, называемый "MS Access Database", который может быть использован
для доступа к любой базе данных через модификацию параметра DBQ option.
TOM

********************.
Microsoft Access -> SPSS
********************.
Примеч.: в параметре /SQL можно использовать любое выражение "MS-Access SQL" с ключевым словом SELECT. 
Можно брать данные из таблиц и(или) запросов. 

GET DATA
 /TYPE = ODBC
 /CONNECT = "DSN=MS Access Database;"
            "DBQ=C:\\Windows\\Desktop\\test.mdb;"
 /SQL = "SELECT * FROM [YOUR_TABLE_NAME]".
CACHE.
EXECUTE.


*******************.
Lotus Notes -> SPSS
********************.
Примеч.: в параметре /SQL можно использовать любое выражение "NotesSQL" с ключевым словом SELECT. 
Можно брать данные из форм и(или) представлений (Views).


GET DATA
 /TYPE = ODBC
 /CONNECT = "DRIVER=Lotus NotesSQL Driver (*.nsf);
            "ThreadTimeout=60;MaxVarcharLen=255;"
            "MapSpecialChars=1;ShowImplicitFlds=1;"
            "Server=YOUR_SERVER_NAME;"
            "Database=YOUR_DATABASE_NAME.nsf;"
 /SQL = "SELECT * FROM ViewName".
CACHE.
EXECUTE.

-------

Чтобы гарантировать корректные имена переменных при импорте в SPSS, в обоих случаях можно
использовать ключевое слово "AS" языка SQL. В примере ниже следующий запрос возвращает короткие имена
переменных, объединяет 2 таблицы, сортирует записи - всё это ещё до того, как данные попадут
в SPSS! Опять же, (почти) любой запрос, созданный в Access может быть использован при 
таком импорте.

/SQL = "SELECT "
       "T1.[Employee ID] AS idnum, "
       "T2.[FullName] AS empname "
       "FROM Table1 as T1 INNER JOIN Table2 AS T2 "
       "ON T1.[Employee ID] = T2.[Employee ID] "
       "ORDER BY T2.[LastName], T2.[FirstName]"