powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Ошибка: Неправильный синтаксис перед "0".
5 сообщений из 5, страница 1 из 1
Ошибка: Неправильный синтаксис перед "0".
    #38292504
AleKs20
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, что означает данная ошибка?
В VBA не силен, предупреждаю сразу....
Вот код:
Код: vbnet
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.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
Sub Macro1()

Dim cSQLSrv As String
Dim cSQLUsr As String
Dim cSQLPwd As String
Dim cSQLDB As String
Dim cSQLWID As String
Dim cSQLApp As String
Dim cConStr As String
Dim ProductCode As String
Dim GroupeName As String
Dim StartDateTime As String
Dim FinishDateTime As String
Dim TaskName As String
Dim PartName As Object
Dim iRow As Integer

cSQLSrv = "\\\"
cSQLUsr = "\\\"
cSQLPwd = "\\\"
cSQLDB = "\\\"
cSQLWID = Application.UserName
cSQLApp = Application.Name

cConStr = "Provider = SQLOLEDB;" + _
          "Password = " + cSQLPwd + ";" + _
          "User ID=" + cSQLUsr + ";" + _
          "Initial Catalog=" + cSQLDB + ";" + _
          "Data Source=192.168.50.215;"
Set oCon = CreateObject("ADODB.Connection")
oCon.ConnectionString = cConStr
oCon.Open
  

Set oCon = CreateObject("ADODB.Connection")
oCon.ConnectionString = cConStr
oCon.Open

Set oCmd = CreateObject("ADODB.Command")

oCmd.ActiveConnection = oCon
oCmd.CommandType = 1
oCmd.CommandText = "select TOP 5  TASK.TASKID,'' as Fio,Place.PlaceTechId as PlaceCode,"
oCmd.CommandText = oCmd.CommandText & " (case isnull(Part.ProductId,0)  when  0  then Part.PartName else Product.ProductName end )  as PartName," & _
oCmd.CommandText = oCmd.CommandText & "       TaskName From Task," & _
oCmd.CommandText = oCmd.CommandText & "       Task.StartDateTime,Task.FinishDateTime,PT1.Shift as Shift1,PT2.Shift as Shift2,"
oCmd.CommandText = oCmd.CommandText & "       isnull(Part.PartVolume,'') as Kol,"
oCmd.CommandText = oCmd.CommandText & "       (case year(Task.StartDateTime)   when year(GetDate())  then"
oCmd.CommandText = oCmd.CommandText & "        (case month(Task.StartDateTime) when month(GetDate()) then"
oCmd.CommandText = oCmd.CommandText & "        (case day(Task.StartDateTime)  when day(GetDate())   then"
oCmd.CommandText = oCmd.CommandText & "         (case PT1.Shift when 1 then isnull(Part.PartVolume,0) else 0 end)"
oCmd.CommandText = oCmd.CommandText & "            else 0  end) else 0 end ) else 0 end) as Zap1,"
oCmd.CommandText = oCmd.CommandText & "      (case year(Task.FinishDateTime)   when year(GetDate())  then"
oCmd.CommandText = oCmd.CommandText & "        (case month(Task.FinishDateTime) when month(GetDate()) then"
oCmd.CommandText = oCmd.CommandText & "         (case day(Task.FinishDateTime)  when day(GetDate())   then"
oCmd.CommandText = oCmd.CommandText & "          (case PT2.Shift when 1 then isnull(Part.PartVolume,0) else 0 end)"
oCmd.CommandText = oCmd.CommandText & "            else 0  end) else 0 end ) else 0 end) as Sd1,"
oCmd.CommandText = oCmd.CommandText & "      (case year(Task.StartDateTime)   when year(GetDate())  then"
oCmd.CommandText = oCmd.CommandText & "      (case month(Task.StartDateTime) when month(GetDate()) then"
oCmd.CommandText = oCmd.CommandText & "       (case day(Task.StartDateTime)  when day(GetDate())   then"
oCmd.CommandText = oCmd.CommandText & "        (case PT1.Shift when 2 then isnull(Part.PartVolume,0) else 0 end)"
oCmd.CommandText = oCmd.CommandText & "            else 0  end) else 0 end ) else 0 end) as Zap2,"
oCmd.CommandText = oCmd.CommandText & "      (case year(Task.FinishDateTime)   when year(GetDate())  then"
oCmd.CommandText = oCmd.CommandText & "       (case month(Task.FinishDateTime) when month(GetDate()) then"
oCmd.CommandText = oCmd.CommandText & "        (case day(Task.FinishDateTime)  when day(GetDate())   then"
oCmd.CommandText = oCmd.CommandText & "         (case PT2.Shift when 2 then isnull(Part.PartVolume,0) else 0 end)"
oCmd.CommandText = oCmd.CommandText & "            else 0  end) else 0 end ) else 0 end) as Sd2,"
oCmd.CommandText = oCmd.CommandText & "      (case year(Task.StartDateTime)   when year(GetDate())  then"
oCmd.CommandText = oCmd.CommandText & "      (case month(Task.StartDateTime) when month(GetDate()) then"
oCmd.CommandText = oCmd.CommandText & "       (case day(Task.StartDateTime)  when day(GetDate())   then"
oCmd.CommandText = oCmd.CommandText & "        (case PT1.Shift when 3 then isnull(Part.PartVolume,0) else 0 end)"
oCmd.CommandText = oCmd.CommandText & "            else 0  end) else 0 end ) else 0 end) as Zap3,"
oCmd.CommandText = oCmd.CommandText & "        (case year(Task.FinishDateTime)   when year(GetDate())  then"
oCmd.CommandText = oCmd.CommandText & "      (case month(Task.FinishDateTime) when month(GetDate()) then"
oCmd.CommandText = oCmd.CommandText & "       (case day(Task.FinishDateTime)  when day(GetDate())   then"
oCmd.CommandText = oCmd.CommandText & "        (case PT2.Shift when 3 then isnull(Part.PartVolume,0) else 0 end)"
oCmd.CommandText = oCmd.CommandText & "            else 0  end) else 0 end ) else 0 end) as Sd3"
oCmd.CommandText = oCmd.CommandText & "        Task.PartName+Task.TaskName as Naimenovanie"
oCmd.CommandText = oCmd.CommandText & " from PlanTask AS Task"
oCmd.CommandText = oCmd.CommandText & " left join PlanPart as Part on Task.PartId=Part.PartId"
oCmd.CommandText = oCmd.CommandText & " left join PlanProduct as Product on Part.ProductId=Product.ProductId"
oCmd.CommandText = oCmd.CommandText & " left join PlanPlace as Place on Task.PlaceId=Place.PlaceId"
oCmd.CommandText = oCmd.CommandText & " left join PlanTime AS PT1 on Task.StartDateTime>PT1.StartDateTime and Task.StartDateTime<=PT1.FinishDateTime"
oCmd.CommandText = oCmd.CommandText & " left join PlanTime AS PT2 on Task.FinishDateTime>PT2.StartDateTime and Task.FinishDateTime<=PT2.FinishDateTime"
oCmd.CommandText = oCmd.CommandText & " where (Task.StateId Is Null Or Task.StateId = 30)"
oCmd.CommandText = oCmd.CommandText & "      and ((year(Task.StartDateTime)=year(GetDate())"
oCmd.CommandText = oCmd.CommandText & "     and month(Task.StartDateTime)=month(GetDate())"
oCmd.CommandText = oCmd.CommandText & "    and day(Task.StartDateTime)=day(GetDate()))"
oCmd.CommandText = oCmd.CommandText & "     or (year(Task.FinishDateTime)=year(GetDate())"
oCmd.CommandText = oCmd.CommandText & "     and month(Task.FinishDateTime)=month(GetDate())"
oCmd.CommandText = oCmd.CommandText & "     and day(Task.FinishDateTime)=day(GetDate())))"
'oCmd.CommandText = oCmd.CommandText & "     and Task.TaskDescription like '%43-8%'"
oCmd.CommandText = oCmd.CommandText & "     and right(Task.TaskName,4)='_032'"
oCmd.CommandText = oCmd.CommandText & "     and Product.ProductName is not null"
oCmd.CommandText = oCmd.CommandText & " ORDER BY Place.PlaceTechId,Task.StartDateTime,Task.FinishDateTime"

Set oRec = oCmd.Execute

MsgBox (oRec.State)


Set oRec = CreateObject("ADODB.Recordset")
oRec.Open oCmd.CommandText
oRec.MoveFirst
Do Until oRec.EOF
    MsgBox (oRec.Fields("Item").Value)
    oRec.MoveNext
Loop

Set oCmd = CreateObject("ADODB.Command")

oCmd.ActiveConnection = oCon
oCmd.CommandType = 1
oCmd.CommandText = oCmd.CommandText

oCmd.Parameters.Refresh
Set oRec = oCmd.Execute

MsgBox (oRec.State)

iRow = 0

SelectTaskField Row:=0, Column:="&#206;&#239;&#229;&#240;&#224;&#246;&#232;&#255;"
    SetTaskField Field:="&#206;&#239;&#229;&#240;&#224;&#246;&#232;&#255;", Value:="Task.PartName+Task.TaskName as Naimenovanie"
    SelectTaskField Row:=0, Column:="&#205;&#224;&#247;&#224;&#235;&#238;"
    SetTaskField Field:="&#205;&#224;&#247;&#224;&#235;&#238;", Value:="Zap1"
    SelectTaskField Row:=0, Column:="&#206;&#234;&#238;&#237;&#247;&#224;&#237;&#232;&#229;"
    SetTaskField Field:="&#206;&#234;&#238;&#237;&#247;&#224;&#237;&#232;&#229;", Value:="Zap2"
    SelectTaskField Row:=0, Column:="&#205;&#224;&#231;&#226;&#224;&#237;&#232;&#255; &#240;&#229;&#241;&#243;&#240;&#241;&#238;&#226;"
    SetTaskField Field:="", Value:="&#205;&#224;&#231;&#226;&#224;&#237;&#232;&#255; &#240;&#229;&#241;&#243;&#240;&#241;&#238;"
    SelectTaskField Row:=0, Column:="&#207;&#240;&#229;&#228;&#248;&#229;&#241;&#242;&#226;&#229;&#237;&#237;&#232;&#234;&#232;"
    SetTaskField Field:="&#205;&#224;&#231;&#226;&#224;&#237;&#232;&#255; &#240;&#229;&#241;&#243;&#240;&#241;&#238;&#226;", Value:=""
    SelectTaskField Row:=0, Column:="&#207;&#240;&#229;&#228;&#248;&#229;&#241;&#242;&#226;&#229;&#237;&#237;&#232;&#234;&#232;"
    

 
Set oCmd = Nothing
Set oRec = Nothing
Set oCon = Nothing

Exit Sub

For Each ADOErr In oCon.Errors
    MsgBox (Hex(ADOErr.Number) + " : " + ADOErr.Description)
    MsgBox (Hex(ADOErr.Number) + " : " + ADOErr.Description)
Next

End Sub


__________________________________________________________________________________________________________________
Просьба: Не судите строго, я еще только начал учить VBA...

Модератор: Учимся использовать тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
Ошибка: Неправильный синтаксис перед "0".
    #38292525
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AleKs20Просьба: Не судите строго, я еще только начал учить VBA...
Это не повод:
1) Не различать VB и VBA;
2) Не суметь использовать теги форматирования;
3) Не указывать, в какой именно строке ошибка.
...
Рейтинг: 0 / 0
Ошибка: Неправильный синтаксис перед "0".
    #38292543
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот тут для начала ошибка синтаксиса:
либо
Код: vbnet
1.
2.
3.
oCmd.CommandText = oCmd.CommandText & " (case isnull(Part.ProductId,0)  when  0  then Part.PartName else Product.ProductName end )  as PartName," & _
 "       TaskName From Task," & _
 "       Task.StartDateTime,Task.FinishDateTime,PT1.Shift as Shift1,PT2.Shift as Shift2,"


либо
Код: vbnet
1.
2.
3.
oCmd.CommandText = oCmd.CommandText & " (case isnull(Part.ProductId,0)  when  0  then Part.PartName else Product.ProductName end )  as PartName," 
oCmd.CommandText = oCmd.CommandText & "       TaskName From Task," 
oCmd.CommandText = oCmd.CommandText & "       Task.StartDateTime,Task.FinishDateTime,PT1.Shift as Shift1,PT2.Shift as Shift2,"


определитесь
...
Рейтинг: 0 / 0
Ошибка: Неправильный синтаксис перед "0".
    #38292554
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из-за этой ошибки у вас неправильно формируется строка sql-запроса, что порождает потом ошибку при выполнении запроса
...
Рейтинг: 0 / 0
Ошибка: Неправильный синтаксис перед "0".
    #38292600
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще, у вас запрос неизменный, засуньте его в View или Storec Proc на сервере и не парьтесь на VB с такими простынями
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Ошибка: Неправильный синтаксис перед "0".
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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