Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA и SQL Server 2000 / 9 сообщений из 9, страница 1 из 1
05.10.2005, 12:06:44
    #33305904
zvanya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA и SQL Server 2000
Ребята, следующая проблема. Подключаюсь к базе след. образом:
Код: plaintext
1.
2.
3.
4.
5.
6.
Dim wrk As Workspace, cnn As Connection, rst As Recordset
Dim fld As Field, strConnect As String, strSQL As String
strConnect = "ODBC;DSN=MyFLink;UID=sa; PWD=; DATABASE=FLINK"
Set wrk = DBEngine.CreateWorkspace("NewODBCDirect", "sa", "", dbUseODBC)
Set cnn = wrk.OpenConnection("MFLnk", dbDriverNoPrompt, False, strConnect)
' ?????????????
Set cnn = Nothing

Как мне прочитать из таблицы ALM базы FLINK зн-е трех столбцов ST1 , ST2 , ST3 типа string первой строки и сохранить их в массив либо в три переменные?
...
Рейтинг: 0 / 0
05.10.2005, 13:45:57
    #33306247
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA и SQL Server 2000
скорее всего надо сделать запрос

Код: plaintext
1.
strSQL = "SELECT TOP 1 FROM ALM"
rst.Open strSQL, cnn
если столбцы в таблице называются ST1, ST2, ST3 то их значения получешь так
Код: plaintext
1.
2.
A  = rst!ST1
B  = rst!ST2
C  = rst!ST3
...
Рейтинг: 0 / 0
05.10.2005, 13:48:53
    #33306261
Melkiades
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA и SQL Server 2000
HandKot
Код: plaintext
1.
strSQL = "SELECT TOP 1 FROM ALM"


SELECT TOP 1 чего?

Код: plaintext
SELECT TOP  1  ST1,ST2,ST3 FROM ALM
...
Рейтинг: 0 / 0
05.10.2005, 13:52:44
    #33306278
zvanya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA и SQL Server 2000
авторrst.Open strSQL, cnn
Пишет нет такого метода .open
...
Рейтинг: 0 / 0
05.10.2005, 14:45:10
    #33306477
VBA и SQL Server 2000
Конечно нет. Пишешь под DAO, а тебе пример под ADO дали.

Код: plaintext
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.
    Dim wrk As Workspace
    Dim cnn As Connection
    Dim rst As Recordset
    Dim fld As Field
    Dim strConnect As String
    Dim strSQL As String
    
    strConnect = "ODBC;DSN=MyFLink;UID=sa;PWD=;DATABASE=FLINK"
    
    Set wrk = DBEngine.CreateWorkspace("NewODBCDirect", "sa", "", dbUseODBC)
    
    Set cnn = wrk.OpenConnection("MFLnk", dbDriverNoPrompt, False, strConnect)
    
    Set rst = cnn.OpenRecordset("SELECT TOP 1 ST1,ST2,ST3 FROM ALM", _
      dbOpenSnapshot)
    
    With rst
        Do While Not .EOF
           Debug.Print .Fields( 0 ) & " " & .Fields( 1 ) & " " & .Fields( 2 )
           .MoveNext
        Loop
    End With
    
    rst.Close
    cnn.Close

    Set cnn = Nothing
...
Рейтинг: 0 / 0
06.10.2005, 09:30:57
    #33307872
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA и SQL Server 2000
авторКонечно нет. Пишешь под DAO, а тебе пример под ADO дали

надо просто в рефренсы добавить библиотеку ADO
...
Рейтинг: 0 / 0
07.10.2005, 04:05:38
    #33310461
MMaxM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA и SQL Server 2000
Private WSpace As Workspace
Private DBase As Database
Private RecSet As Recordset


Public Function ConnectSQLSrv(s_server, s_base, s_user, s_pass As String) As Boolean
Dim ConnStr As String
Set WSpace = CreateWorkspace("", s_user, s_pass, dbUseODBC) ' необязательное создание рабочей области
ConnStr = "ODBC;DSN=MQIS;UID=" + s_user + ";PWD=" + s_pass + ";SERVER=" + s_server + ";DATABASE=" + s_base
Set DBase = WSpace.OpenConnection(ConnStr)
ConnectSQLSrv = True
End Function

Public Function ReadRecSet() As String
Dim SQL_str As String
Dim glpCntEnterprise As String
Dim temptable As Recordset
If ConnectSQLSrv(s_server, s_base, s_user, s_pass) = True Then
SQL_str = ""
SQL_str = "SELECT * FROM dbo.TableName where TebleNameID=1236"
Set RecSet = DBase.OpenRecordset(SQL_str)

If Not IsNull(RecSet.Fields(1).VALUE) Then
glpCntEnterprise = RecSet.Fields(1).VALUE
Else
glpCntEnterprise = 0
End If
ReadRecSet = glpCntEnterprise
Else
ReadRecSet = " "
End If
End Function
...
Рейтинг: 0 / 0
07.10.2005, 04:07:25
    #33310462
MMaxM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA и SQL Server 2000
Надеюсь вы разберётесь в моих каракулях
...
Рейтинг: 0 / 0
07.10.2005, 04:09:00
    #33310463
MMaxM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA и SQL Server 2000
Самое главное используется DAO и ODBC
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA и SQL Server 2000 / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]