Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: rst.Open strSql, cnn, adOpenKeyset, adLockOptimistic
 
 автор: ser60   (26.05.2011 в 08:38)   личное сообщение
 
 

подскажите, в чем ошибка синтаксиса и как исправить?
или ошибка в strSql ?

  Ответить  
 
 автор: час   (26.05.2011 в 08:40)   личное сообщение
 
 

Наверное в strSql , так как остальное - всё красиво и по моему правильно.

  Ответить  
 
 автор: ser60   (26.05.2011 в 08:43)   личное сообщение
 
 

оцените, плиз!
strSql = "SELECT Sum(BedCalc([ПланОбъемДеят],[кодФункционал],[МедОрг])) AS РасчетКоек "
strSql = strSql & "FROM (сСпециальностей INNER JOIN сШН ON сСпециальностей.Код = сШН.МедСпец) "
strSql = strSql & "INNER JOIN ФункционалМедОрг ON сШН.КодФункционал = ФункционалМедОрг.Функционал"
strSql = strSql & "WHERE (((ФункционалМедОрг.МедОрг)=""" & glngMedOrgCode & """) AND "
strSql = strSql & "((ФункционалМедОрг.Функционал)<69) AND ((сСпециальностей.Хирургичность)=Yes));"

strSql сварганил из запроса

  Ответить  
 
 автор: час   (26.05.2011 в 08:49)   личное сообщение
 
 

Найти тута ошибку - не представляется возможным
ДЛЯ МЕНЯ
--------------------------------
хотя вот тут """ & glngMedOrgCode & """ - дофига кавычек

'" & glngMedOrgCode & "'

вот так достаточно.
Это вообще - строковое значение в таблице? в коде ?

  Ответить  
 
 автор: shanemac51   (26.05.2011 в 09:11)   личное сообщение
 
 


кавычки у вас похоже нормально, а вот пробелы ---увы

strsql = "SELECT Sum(BedCalc([ПланОбъемДеят],"
strsql = strsql & " [кодФункционал],[МедОрг])) AS РасчетКоек "
strsql = strsql & " FROM (сСпециальностей INNER JOIN сШН"
strsql = strsql & " ON сСпециальностей.Код = сШН.МедСпец) "
strsql = strsql & " INNER JOIN ФункционалМедОрг"
strsql = strsql & " ON сШН.КодФункционал = ФункционалМедОрг.Функционал"
strsql = strsql & " WHERE (((ФункционалМедОрг.МедОрг)=""" & glngMedOrgCode & """) AND "
strsql = strsql & "((ФункционалМедОрг.Функционал)<69) AND ((сСпециальностей.Хирургичность)=Yes));"

хотя glngMedOrgCode--похоже число, зачем тогда кавычки

strsql = "SELECT Sum(BedCalc([ПланОбъемДеят],"
strsql = strsql & " [кодФункционал],[МедОрг])) AS РасчетКоек "
strsql = strsql & " FROM (сСпециальностей INNER JOIN сШН"
strsql = strsql & " ON сСпециальностей.Код = сШН.МедСпец) "
strsql = strsql & " INNER JOIN ФункционалМедОрг"
strsql = strsql & " ON сШН.КодФункционал = ФункционалМедОрг.Функционал"
strsql = strsql & " WHERE (((ФункционалМедОрг.МедОрг)=" & glngMedOrgCode & ") AND "
strsql = strsql & " ((ФункционалМедОрг.Функционал)<69) AND ((сСпециальностей.Хирургичность)=Yes));"

каков тип ФункционалМедОрг.МедОрг

  Ответить  
 
 автор: ser60   (26.05.2011 в 09:23)   личное сообщение
 
 

оставил одни кавычки " & "
и исправил пробелы (спасибо, не увидел) и вроде прошло

ВСЕМ спасибо!!

  Ответить  
 
 автор: shanemac51   (26.05.2011 в 09:38)   личное сообщение
 
 


предпочитаю создание строк без лишних сцеплений

Dim s1
Dim glngMedOrgCode
Dim rst As DAO.Recordset
Sub a110526_0905()

s1 = "SELECT Sum(BedCalc([ПланОбъемДеят],"
s1 = s1 & " [кодФункционал],[МедОрг])) AS РасчетКоек "
s1 = s1 & " FROM (сСпециальностей INNER JOIN сШН"
s1 = s1 & " ON сСпециальностей.Код = сШН.МедСпец) "
s1 = s1 & " INNER JOIN ФункционалМедОрг w"
s1 = s1 & " ON сШН.КодФункционал = w.Функционал"
s1 = s1 & " WHERE ((w.МедОрг)=pp1) "
s1 = s1 & " and ((w.Функционал)<pp2)"
s1 = s1 & " AND ((сСпециальностей.Хирургичность)=pp3);"
'DoCmd.RunSQL s1
glngMedOrgCode = 1
s1 = zm(s1, "pp1", glngMedOrgCode)
s1 = zm(s1, "pp2", 69)
s1 = zm(s1, "pp3", True)
''s1 = zm(s1, "pp4", True)
Debug.Print s1
Set rst = CurrentDb.OpenRecordset(s1)
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function zm(nstroka, npoisk, nzamena)
zm = Replace(nstroka, npoisk, nzamena)
Dim j1
j1 = InStr(nstroka, npoisk)
If j1 = 0 Then
MsgBox "неверно имя параметра " & npoisk & Chr(13) & nstroka
Else
Debug.Print npoisk, nzamena, Mid(nstroka, j1 - 5, 20)
End If
End Function
'''''''''''''''''''''''''''''''''''''''''''''''''''''''
кавычки и # расставляю сразу
''''''''''''''''''''''''
s1 = s1 & " WHERE ((w.колич)=pp1) "
s1 = s1 & " and ((w.датаФункционал)<#pp2#)"
s1 = s1 & " AND ((сСпециальностей.символХирургичность)='pp3');"

  Ответить  
 
 автор: ser60   (26.05.2011 в 16:30)   личное сообщение
 
 

shanemac51 ! Интересное решение!
а вот Sub a110526_0905() не понял. Где то еще Sub есть?

  Ответить  
 
 автор: shanemac51   (26.05.2011 в 23:08)   личное сообщение
 
 


автор: ser60 (26.05.2011 в 16:30) личное сообщение

to: shanemac51 (26.05.2011 в 09:38)


shanemac51 ! Интересное решение!
а вот Sub a110526_0905() не понял. Где то еще Sub есть?



день и время --для идентификации версий

  Ответить  
 
 автор: ser60   (26.05.2011 в 09:11)   личное сообщение
 
 

glngMedOrgCode это long
с одними (двойными) кавычками тоже не проходит

  Ответить  
 
 автор: Explorer   (26.05.2011 в 09:16)   личное сообщение
 
 

сформируйте готовый стринг запроса и покажите

  Ответить  
 
 автор: час   (26.05.2011 в 10:31)   личное сообщение
 
 

ды не с одними двойными а апостоф и кавычки - ' " вот так только без пробела.

  Ответить  
 
 автор: ser60   (26.05.2011 в 16:30)   личное сообщение
 
 

час, сорри!

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList