SQLConfigDataSource
не принимает строку подключения. Он принимает имя драйвера и атрибуты.
Давайте разберем строку подключения:
ODBC;
: префикс DAO-Speci c, указывающий строку подключения ODB C. Никогда не требуется вне Access / DAO.
DSN=Postgres_Test
: имя DSN
Driver=PostgreSQL Unicode
: имя драйвера, если никогда не следует сочетать с Имя DSN в строке подключения, поскольку DSN указывает имя драйвера
Server=************.*********.***.****;Port=*****;Database=example;Uid=********;Pwd=****************;
: атрибуты драйвера c.
Если мы посмотрим на документацию, атрибуты драйвера должны быть нулевыми -отделяется, не разделяется ;
, и строка должна заканчиваться двойным нулевым разделителем.
Итак, последний вызов должен выглядеть следующим образом:
CreateDSN = SQLConfigDataSource(0&, ODBC_ADD_SYS_DSN, _
"PostgreSQL Unicode", "DSN=Postgres_Test" & vbNullChar & "SERVER=***" & vbNullChar & "Port=*****" & vbNullChar & 'Etc)
Убедитесь, что что заканчивается на vbNullChar
Кроме того, fRequest
- это Word
, а Word
соответствует Integer
в VBA, поэтому ваше объявление должно быть скорректировано для этого.
Однако, как указал Макс, в Access есть встроенная система регистрации уведомлений о доставке, и вам, вероятно, следует просто использовать ее, поскольку это намного проще.