Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Запрос к SQL серверу  [new]
ksandr
Member

Откуда:
Сообщений: 51
Здравствуйте. Посдкажите в чём может быть ошибка. Существует вот такой запрос

SELECT source_ip,url,date_time
FROM incoming
WHERE SOURCE_IP =[forms]![traffic]![Поле2]

При исполнении выдаётся ошибка incorrect syntax near '!'. Если данный запрос выполнять к локальной базе, всё ок, а к Sql - ошибка. В чём синтаксис неправильный ? Спасибо.

И ещё вопросик. Каким образом я могу запустить view хранящуюся на серваке и использовать её результаты в качестве данных для отчёта.

Просьба сильно не пинать :))
13 дек 05, 17:39    [2168163]     Ответить | Цитировать Сообщить модератору
 Re: Запрос к SQL серверу  [new]
Konst_One
Member

Откуда:
Сообщений: 11551
и как , позвольте спросить, вы его пытаетесь выполнить?
13 дек 05, 17:46    [2168208]     Ответить | Цитировать Сообщить модератору
 Re: Запрос к SQL серверу  [new]
Шайтан
Member

Откуда: город обречённых
Сообщений: 21830
ksandr
.... [forms]![traffic]![Поле2]....
Просьба сильно не пинать :))

какое пинать?
давно так ни плакаль

ты мне лучше расскажи-научи, как на SQL Server'e создать ФОРМУ?!?!?!?
Шайтан
13 дек 05, 18:03    [2168314]     Ответить | Цитировать Сообщить модератору
 Re: Запрос к SQL серверу  [new]
Matroz
Member

Откуда: Ekaterinburg
Сообщений: 230
ну чего издеваетесь над парнем, он только обидится, а толку не будет. Как Шайтан заметил, запрос анализируется на сервере и там неизвестно что за х.. [forms]![traffic]![Поле2]. Я не большой знаток акцесса, наверное для запуска вьюхи можно в акцессе создать сохраненный запрос SELECT FROM ВЬЮХА, у которого будет тип согласно меню"запрос SQL ->к серверу". Создание строки подключения ODBC для такого запроса смотри в хелп. Кроме того при запуске отчета на событие "Открытие" можно кой-что делать с источником данных, например фильтр включить и т п..
13 дек 05, 21:10    [2168790]     Ответить | Цитировать Сообщить модератору
 Re: Запрос к SQL серверу  [new]
Пользователь2
Guest
Принцип обработки запросов к серверу отличатеся от принципа обработки обычных запросов Access.

Любые ссылки на формы или элементы форм с точки зрения SQL Server бессмысленны. Надо передавать фактические значения параметров.

Сделай ХП на сервере:

CREATE PROCEDURE sp1
@intParam int
AS
SELECT source_ip, url, date_time
FROM incoming
WHERE SOURCE_IP = @intParam

Создай в Access запрос к серверу и запиши.

EXEC sp1 100

Строка подключения:

ODBC;Driver={SQL Server};Server=(local);
Database=TвояБаза;Trusted_Connection=Yes
14 дек 05, 08:59    [2169322]     Ответить | Цитировать Сообщить модератору
 Re: Запрос к SQL серверу  [new]
Alexus12
Member

Откуда:
Сообщений: 2868
создаем спецтип запроса - pass-thru ("к серверу")
и пишем код, его изменяющий:

Sub Exec_Query(datenow As Date)

Dim q As QueryDef
Set q = CurrentDb.QueryDefs("PT_Query")
q.SQL = "SELECT * FROM tbl WHERE fdate = " & Format(datenow, "dd/mm/yyyy") & ";"
q.Close
'q.Execute - если это DML-операция
Set q = Nothing
End Sub

код правит запрос на основе переданных ему данных,
далее можно запрос выполнять в коде (если это DML-операция) или открывать как обычно (если обычный SELECT)
14 дек 05, 09:56    [2169493]     Ответить | Цитировать Сообщить модератору
 Re: Запрос к SQL серверу  [new]
ksandr
Member

Откуда:
Сообщений: 51
Всем пасиб

2 Шайтан
В отличие от вас другие люди поняли то что я спрашивал хоть и кривовато, форма создана в Аксессе и из Аксесса я пытаюсь создать запрос к скулю, так что продалжайте плакать, тока над собой.
15 дек 05, 09:54    [2173608]     Ответить | Цитировать Сообщить модератору
 Re: Запрос к SQL серверу  [new]
Шайтан
Member

Откуда: город обречённых
Сообщений: 21830
ksandr
Всем пасиб

2 Шайтан
В отличие от вас другие люди поняли то что я спрашивал хоть и кривовато, форма создана в Аксессе и из Аксесса я пытаюсь создать запрос к скулю, так что продалжайте плакать, тока над собой.


ну и флаг им в руки
в отличие от других людей мне надоело несколько лет телепатировать и отвечать на вопросы, которые прописаны в волшебной кнопочке F1
или на Вашей "клаве" таковая отсутвует? или просто "западло" снисходить до хелпа?
15 дек 05, 10:09    [2173663]     Ответить | Цитировать Сообщить модератору
 Re: Запрос к SQL серверу  [new]
ksandr
Member

Откуда:
Сообщений: 51
Ладно, каждый остался при своём мнении, форум создан для того чтобы люди помогали друг другу в вопросах не только исключительно хитрых и сложных, а и в достаточно простых и даже тупых, все имеют разный уровень, и все когда то начинали. Удачи. Вам я думаю то же когда то отвечали на довольно простые вопросы, вам приятно когда над вами смеются ?
15 дек 05, 10:12    [2173678]     Ответить | Цитировать Сообщить модератору
 Re: Запрос к SQL серверу  [new]
Шайтан
Member

Откуда: город обречённых
Сообщений: 21830
2 ksandr
когда я начинал....э-эх когда я начинал
дак вот, ответить на вопросы мог только шеф (не забыв уменьшить премию)
или ещё можно было документацию почитать
а интЫрнету (массового) тогда ещё не было, да и до создания этого форума ещё был десяток лет впереди ....
Шайтан
15 дек 05, 10:34    [2173791]     Ответить | Цитировать Сообщить модератору
 Re: Запрос к SQL серверу  [new]
Iskander68
Member

Откуда: Королев М.О.
Сообщений: 877

Шайтанну и флаг им в руки
в отличие от других людей мне надоело несколько лет телепатировать и отвечать на вопросы,
которые прописаны в волшебной кнопочке F1



Шайтан, надоело - не отвечай.
Автору - сорри за оффтоп.
--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.3

15 дек 05, 10:38    [2173813]     Ответить | Цитировать Сообщить модератору
 Re: Запрос к SQL серверу  [new]
Звереныш
Guest
Iskander68


Шайтан, надоело - не отвечай.
Автору - сорри за оффтоп.
--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.3


Я правда не пойму, почему бы книжку не почитать, прежде чем на форум постить вопросы...
И умиляют вступления типа - я не профессионал, но решил тут сделать базу. Типа считается, что чтобы на Access программировать учиться не надо?
Это же просто - мастером не создалось что нужно - мы в форум вопрос кинем.
Из последнего порадовало нечто вроде: я на VBA программировать пока не умею, но мне надо, чтобы... Подскажите как.
То есть человеку не подсказывать надо, а писать за него код. Ну и оно что - нормально?

А если чуть посложнее попробовать. Литературку там почитать, еще как-нибудь?
15 дек 05, 11:03    [2173971]     Ответить | Цитировать Сообщить модератору
 Re: Запрос к SQL серверу  [new]
Iskander68
Member

Откуда: Королев М.О.
Сообщений: 877

Звереныш
Я правда не пойму, почему бы книжку не почитать, прежде чем на форум постить
вопросы...



Я тоже не пойму. Но аргументация Шайтана была другой - "мне надоело отвечать на примитивные
вопросы". Можно подумать, что здесь кого-то заставляют сидеть и отвечать на примитивные и
некорректные вопросы. Кстати, даже если надоело, это не повод унижать достоинства человека.
Более на эту тему распространяться не намерен.
--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.3

15 дек 05, 11:11    [2174024]     Ответить | Цитировать Сообщить модератору
 Re: Запрос к SQL серверу  [new]
Звереныш
Guest
Iskander68

Более на эту тему распространяться не намерен.


Сказал - как отрезал. Внушает.
Да я чего - мне то по фигу... Просто тому же Шайтану, дабы ответить человеку, которому реально нужна помощь, требуется просмотреть гору мусора. А так конечно - не заставляет никто ни разу...
15 дек 05, 11:34    [2174189]     Ответить | Цитировать Сообщить модератору
 Re: Запрос к SQL серверу  [new]
Звереныш
Guest
Во! Свежий пример!
Соседний на данный момент топик господина Кравченко.
Ну почему не в "работу" бы запостить? Сделайте. Мне оно надо, а потом уже не понадобиться, поэтому читать ничего про Access не буду. Спасибо главное за помощь...
15 дек 05, 11:37    [2174217]     Ответить | Цитировать Сообщить модератору
 Re: Запрос к SQL серверу  [new]
ksandr
Member

Откуда:
Сообщений: 51
Пользователь2
Принцип обработки запросов к серверу отличатеся от принципа обработки обычных запросов Access.

Любые ссылки на формы или элементы форм с точки зрения SQL Server бессмысленны. Надо передавать фактические значения параметров.

Сделай ХП на сервере:

CREATE PROCEDURE sp1
@intParam int
AS
SELECT source_ip, url, date_time
FROM incoming
WHERE SOURCE_IP = @intParam

Создай в Access запрос к серверу и запиши.

EXEC sp1 100

Строка подключения:

ODBC;Driver={SQL Server};Server=(local);
Database=TвояБаза;Trusted_Connection=Yes


Идея понравилась, единственное что поле имеет тип char (24) переписал запрос таким образом
СREATE PROCEDURE sp1
@charParam char
AS
SELECT source_ip, url, date_time
FROM incoming
WHERE SOURCE_IP = @charParam
GO
Но при выполнении кода
exec sp1 '192.1.1.1'
в Query Analyzer выборка строк не происходит. Пробовал подставить явно в процедуру значение - прокатывает, а по другому не хочет, в чём проблема, подскажите ? Спасибо.
15 дек 05, 17:48    [2176393]     Ответить | Цитировать Сообщить модератору
 Re: Запрос к SQL серверу  [new]
Пользователь2
Guest
Ты забыл: @charParam char(24).

Вообщем так.

Делаешь ХП (procGetIp)

CREATE PROCEDURE procGetIp
	@strParam char(24)
AS
	SELECT source_ip, url, date_time
	FROM incoming
	WHERE SOURCE_IP = @strParam

В QA и в запросе к серверу запускаешь ХП на выполнение так:

EXEC procGetIp '192.1.1.1'

Если хочешь использовать данные ХП в качестве источника данных для отчета делаешь так.

Создаешь свободный отчет; данные для полей назначешь соответсвенно (source_ip, url, date_time).

Создаешь форму (frmIncoming) с полем (txtParam) и кнопкой (cmdOpenReport). На событие Click кнопки вешаешь код:

Private Sub cmdOpenReport_Click()
    DoCmd.OpenReport "rptIncoming", acViewPreview
End Sub

В событии Open отчета добавляешь следующий код:

Private Sub Report_Open(Cancel As Integer)
    Dim strQuery As String
    Dim strSQL As String
    Dim strConnect As String
    Dim blnReturnsRecs As Boolean
    
    ' Название твеого запроса к серверу.
    strQuery = "qryIncoming"
    ' Строка подключения.
    strConnect = "ODBC;Driver={SQL Server};Server=(local);" _
      & "Database=pubs;Trusted_Connection=Yes"
    ' Возвращать записи или нет.
    blnReturnsRecs = True
    ' Строка запроса.
    strSQL = "EXEC procGetIp '" & Forms![frmIncoming]![txtParam] & "'"
    
    Call PassThrough(strQuery, strSQL, strConnect, blnReturnsRecs)
    Me.RecordSource = strQuery
End Sub

В стандартный модуль добавляешь процедуру для формирования запроса с учетом введенного в поле формы критерия.

Public Sub PassThrough( _
  ByVal QueryName As String, _
  ByVal SQLStatement As String, _
  Optional ConnectStr As Variant, _
  Optional ReturnsRecords As Boolean = True)

    On Error GoTo HandleError
    
    Dim qdf As DAO.QueryDef
    Dim strConnect As String

    Set qdf = CurrentDb.QueryDefs(QueryName)
        
    If IsMissing(ConnectStr) Then
        strConnect = qdf.Connect
    Else
        strConnect = CStr(ConnectStr)
    End If
    
    qdf.Connect = strConnect
    qdf.ReturnsRecords = ReturnsRecords
    qdf.SQL = SQLStatement
    
ExitHere:
    Set qdf = Nothing
    Exit Sub
    
HandleError:
    MsgBox Err & ": " & Err.Description, , _
      "Error in PassThrough"
    Resume ExitHere
End Sub
17 дек 05, 17:50    [2182344]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить