powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите разобраться в результате VBA
17 сообщений из 17, страница 1 из 1
Помогите разобраться в результате VBA
    #39588677
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, есть как всегда база, есть данные нужно из набора определённых данных собрать человеческий текст, тоесть
заданы ячейки с количеством окон фасада, тыла, торца,
заданы ячейки с количеством балконов фасада, тыла, торца
заданы ячейки с наличием решёток или ролставень на данные конструкции
Нужно чтобы в результате выходил читабельный текст,
типа на фасад выходит 2 окна и один балкон, решёток нет,
или на фасад выходит 2 окна и один балкон, окно оборудовано ролставнями, балкон решёткой.
и так далее.


Код: 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.
Private Sub Form_Current()
'Окна и балконы падежи и множественное число
    If [Окна_Ф] = 1 Then eofa = " окно" And eofm = " окно" Else If [Окна_Ф] = 2 Or [Окна_Ф] = 3 Or [Окна_Ф] = 4 Then eofa = " окна" And eofm = " окна" Else eofa = " окон" And eofm = " окна"
    If [Окна_Тор] = 1 Then eotr = " окно" And eotrm = " окно" Else If [Окна_Тор] = 2 Or [Окна_Тор] = 3 Or [Окна_Тор] = 4 Then eotr = " окна" And eotrm = " окна" Else eotr = " окон" And eotrm = " окна"
    If [Окна_Тыл] = 1 Then eot = " окно" And eotm = " окно" Else If [Окна_Тыл] = 2 Or [Окна_Тыл] = 3 Or [Окна_Тыл] = 4 Then eot = " окна" And eotm = " окна" Else eot = " окон" And eotm = " окна"
    If [Балк_Ф] = 1 Then ebf = " балкон" And ebfm = " балкон" Else If [Балк_Ф] = 2 Or [Балк_Ф] = 3 Or [Балк_Ф] = 4 Then ebf = " балкона" And ebfm = " балконы" Else ebf = " балконов" And ebfm = " балконы"
    If [Балк_Тор] = 1 Then ebtr = " балкон " And ebtrm = " балкон" Else If [Балк_Тор] = 2 Or [Балк_Тыл] = 3 Or [Балк_Тор] = 4 Then ebtr = " балкона " And ebtrm = " балконы" Else ebtr = " балконов " And ebtrm = " балконы"
    If [Балк_Тыл] = 1 Then ebt = " балкон " And ebtm = " балкон" Else If [Балк_Тыл] = 2 Or [Балк_Тыл] = 3 Or [Балк_Тыл] = 4 Then ebt = " балкона " And ebtm = " балконы" Else ebt = " балконов " And ebtm = " балконы"
'Обозначение наличия решеток
     If [Окна_Ф] > 1 Then If [Окна_Ф_Реш] = "решётки" Then resh10 = [Окна_Ф_Реш] Else If [Окна_Ф_Реш] = "ролставни" Then resh10 = [Окна_Ф_Реш] Else resh10 = 3 Else: resh10 = 4
     If [Балк_Ф] > 1 Then If [Балк_Ф_Реш] = "решётки" Then resh11 = [Балк_Ф_Реш] Else If [Балк_Ф_Реш] = "ролставни" Then resh11 = [Балк_Ф_Реш] Else resh11 = 3 Else: resh11 = 4
     If [Окна_Тор] > 1 Then If [Окна_Тор_Реш] = "решётки" Then resh12 = [Окна_Тор_Реш] Else If [Окна_Тор_Реш] = "ролставни" Then resh12 = [Окна_Тор_Реш] Else resh12 = 3 Else: resh12 = 4
     If [Балк_Тор] > 1 Then If [Балк_Тор_Реш] = "решётки" Then resh13 = [Балк_Тор_Реш] Else If [Балк_Тор_Реш] = "ролставни" Then resh13 = [Балк_Тор_Реш] Else resh13 = 3 Else: resh13 = 4
     If [Окна_Тыл] > 1 Then If [Окна_Тыл_Реш] = "решётки" Then resh14 = [Окна_Тыл_Реш] Else If [Окна_Тыл_Реш] = "ролставни" Then resh14 = [Окна_Тыл_Реш] Else resh14 = 3 Else: resh14 = 4
     If [Балк_Тыл] > 1 Then If [Балк_Тыл_Реш] = "решётки" Then resh15 = [Балк_Тыл_Реш] Else If [Балк_Тыл_Реш] = "ролставни" Then resh15 = [Балк_Тыл_Реш] Else resh15 = 3 Else: resh15 = 4
'Решёток нет
     If (resh10 = 3 Or resh10 = 4) And (resh11 = 3 Or resh11 = 4) And (resh12 = 3 Or resh12 = 4) And (resh13 = 3 Or resh13 = 4) And (resh14 = 3 Or resh14 = 4) And (resh15 = 3 Or resh15 = 4) Then resh20 = "Решётки или ролставни не установлены. "
'Решётки фасад и торец
     If (resh10 <> 3 Or resh10 <> 4) And (resh11 <> 3 Or resh11 <> 4) And (resh12 <> 3 Or resh12 <> 4) And (resh13 <> 3 Or resh13 <> 4) Then If resh10 = resh11 = resh12 = resh13 Then resh31 = "На" & eofm & " и" & ebtrm & " с фасада и торца установлены " & resh10 Else resh31 = "Со стороны фасада на " & eofm & " установлены " & resh10 & ", а на " & ebfm & " установлены " & resh10 & ", со стороны торца на " & eotrm & " установлены " & resh10 & ", а на " & ebtrm & " установлены " & resh10 Else:
'Решётки фасад и тыл
     If (resh10 <> 3 Or resh10 <> 4) And (resh11 <> 3 Or resh11 <> 4) And (resh14 <> 3 Or resh14 <> 4) And (resh15 <> 3 Or resh15 <> 4) Then If resh10 = resh11 = resh14 = resh15 Then resh32 = "На" & eofm & " и" & ebtrm & " с фасада и тыла установлены " & resh10 Else resh32 = "Со стороны фасада на " & eofm & " установлены " & resh10 & ", а на " & ebfm & " установлены " & resh10 & ", со стороны тыла на " & eotm & " установлены " & resh10 & ", а на " & ebtm & " установлены " & resh10 Else:
'Решётки торец и тыл
     If (resh12 <> 3 Or resh12 <> 4) And (resh13 <> 3 Or resh13 <> 4) And (resh14 <> 3 Or resh14 <> 4) And (resh15 <> 3 Or resh15 <> 4) Then If resh12 = resh13 = resh14 = resh15 Then resh33 = "На" & eofm & " и" & ebtrm & " с торца и тыла установлены " & resh10 Else resh33 = "Со стороны торца на " & eofm & " установлены " & resh10 & ", а на " & ebfm & " установлены " & resh10 & ", со стороны тыла на " & eotm & " установлены " & resh10 & ", а на " & ebtm & " установлены " & resh10 Else:
'Решётки фасад
     If (resh10 <> 3 Or resh10 <> 4) And (resh11 <> 3 Or resh11 <> 4) Then If resh10 = resh11 Then resh21 = "На" & eofa & " и" & ebfm & " с фасада установлены " & resh11 Else resh21 = "Со стороны фасада на " & eofa & " установлены " & resh10 & ", а на " & ebfm & " установлены " & resh11 Else
'Решётки торец
     If (resh12 <> 3 Or resh13 <> 4) And (resh12 <> 3 Or resh13 <> 4) Then If resh12 = resh13 Then resh22 = "На" & eofa & " и" & ebfm & " с торца установлены " & resh12 Else resh22 = "С торцевой стороны на " & eofa & " установлены " & resh12 & ", а на " & ebfm & " установлены " & resh13 Else
'Решётки тыл
     If (resh14 <> 3 Or resh15 <> 4) And (resh14 <> 3 Or resh15 <> 4) Then If resh14 = resh15 Then resh23 = "На" & eofa & " и" & ebfm & " с тыла установлены " & resh14 Else resh23 = "С тыльной стороны на " & eofa & " установлены " & resh14 & ", а на " & ebfm & " установлены " & resh15 Else
     Else:
     If resh10 = resh11 = resh12 = resh13 = resh14 = resh15 Then resh35 = "На всех" & eofm & " и" & ebfm & " установлены " & resh10 Else resh35 = "Со стороны фасада на " & eofm & " установлены " & resh10 & ", а на " & ebfm & " установлены " & resh10 & ", со стороны торца на " & eotrm & " установлены " & resh10 & ", а на " & ebtrm & " установлены " & resh10 & ", со стороны тыла на " & eotm & " установлены " & resh10 & ", а на " & ebtm & " установлены " & resh10
End If
S = resh20 & resh21 & resh22 & resh23 & resh24 & resh31 & resh32 & resh32 & resh35
Me.П_Описание = "                               " & S
End Sub




Код получился такой, только на выходе получается
" На всех и установлены "
вот так не могу понять почему, и если кто то может подсказать как уменьшить сие ЧУДО, буду признателен.
Заранее спасибо.
...
Рейтинг: 0 / 0
Помогите разобраться в результате VBA
    #39588692
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005,
конструкцию If then else, включающую ещё одну структуру If нужно не в одну строку формировать.
Код: vbnet
1.
  If [Окна_Ф] = 1 Then eofa = " окно" And eofm = " окно" Else If [Окна_Ф] = 2 Or [Окна_Ф] = 3 Or [Окна_Ф] = 4 Then eofa = " окна" And eofm = " окна" Else eofa = " окон" And eofm = " окна"


нужно писать так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
If [Окна_Ф] = 1 then
      eofa = " окно": eofm = " окно"
else
     If [Окна_Ф] = 2 Or [Окна_Ф] = 3 Or [Окна_Ф] = 4 Then 
           eofa = " окна":eofm = " окна"
     Else
            eofa = " окон": eofm = " окна"
     End if
end if
...
Рейтинг: 0 / 0
Помогите разобраться в результате VBA
    #39588698
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

Спасибо, сейчас попробую.
...
Рейтинг: 0 / 0
Помогите разобраться в результате VBA
    #39588700
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005,

Рассмотрим пока только первую строку
Код: vbnet
1.
If [Окна_Ф] = 1 Then eofa = " окно" And eofm = " окно" Else If [Окна_Ф] = 2 Or [Окна_Ф] = 3 Or [Окна_Ф] = 4 Then eofa = " окна" And eofm = " окна" Else eofa = " окон" And eofm = " окна" If 


Вот это
eofa = " окно" And eofm = " окно"
на самом деле логическая операция умножения результатов двух логических операций сравнения,
а вовсе не
eofa = " окно"
eofm = " окно"
как Вы, видимо, думаете.
Вот как нужно:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Select Case Окна_Ф
 Case 1
   eofa = " окно"
   eofm = " окно"
 Case 2, 3, 4
   eofa = " окна" 
   eofm = " окна" 
 Case Else
   eofa = " окон" 
   eofm = " окна"  
End Select
...
Рейтинг: 0 / 0
Помогите разобраться в результате VBA
    #39588708
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005,
никогда не пишу if ... then....else

экономия пары строк кода и абсолютная нечитабельнось

применяю или case или
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
If [Окна_Ф] = 1 Then 
  eofa = " окно" 
  eofm = " окно" 
ElseIf [Окна_Ф] = 2 Or [Окна_Ф] = 3 Or [Окна_Ф] = 4 Then 
  eofa = " окна" 
  eofm = " окна" 
Else 
  eofa = " окон" 
  eofm = " окна"
endif

If [Окна_Тор] = 1 Then 
  eotr = " окно" 
  eotrm = " окно" 
Else If [Окна_Тор] = 2 Or [Окна_Тор] = 3 Or [Окна_Тор] = 4 Then 
  eotr = " окна"  
  eotrm = " окна" 
Else 
  eotr = " окон" 
  eotrm = " окна"
endif
......
...
Рейтинг: 0 / 0
Помогите разобраться в результате VBA
    #39588712
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

Начала ругаться на последнее "Else"
...
Рейтинг: 0 / 0
Помогите разобраться в результате VBA
    #39588735
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005__Michelle,

Начала ругаться на последнее "Else"
Вот впору мне самой заругаться, правда.
Почему сообщение не приводите, а?
...
Рейтинг: 0 / 0
Помогите разобраться в результате VBA
    #39588737
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЕНСИОНЕРКАWawan2005,
никогда не пишу if ... then....else

экономия пары строк кода и абсолютная нечитабельнось

Всегда пишу.
Абсолютная структурированность и ясность.
Вот ElseIf никогда не использовала, не использую и не собираюсь.
Код экономлю на другом.

На вкус, на цвет...)))
...
Рейтинг: 0 / 0
Помогите разобраться в результате VBA
    #39588744
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

'Îáîçíà÷åíèå íàëè÷èÿ ðåøåòîê
If [Îêíà_Ô] > 1 Then If [Îêíà_Ô_Ðåø] = "ðåø¸òêè" Or [Îêíà_Ô_Ðåø] = "ðîëñòàâíè" Then resh10 = [Îêíà_Ô_Ðåø] Else resh10 = 3 Else resh10 = 4
If [Áàëê_Ô] > 1 Then If [Áàëê_Ô_Ðåø] = "ðåø¸òêè" Or [Áàëê_Ô_Ðåø] = "ðîëñòàâíè" Then resh11 = [Áàëê_Ô_Ðåø] Else resh11 = 3 Else resh11 = 4
If [Îêíà_Òîð] > 1 Then If [Îêíà_Òîð_Ðåø] = "ðåø¸òêè" Or [Îêíà_Òîð_Ðåø] = "ðîëñòàâíè" Then resh12 = [Îêíà_Òîð_Ðåø] Else resh12 = 3 Else resh12 = 4
If [Áàëê_Òîð] > 1 Then If [Áàëê_Òîð_Ðåø] = "ðåø¸òêè" Or [Áàëê_Òîð_Ðåø] = "ðîëñòàâíè" Then resh13 = [Áàëê_Òîð_Ðåø] Else resh13 = 3 Else resh13 = 4
If [Îêíà_Òûë] > 1 Then If [Îêíà_Òûë_Ðåø] = "ðåø¸òêè" Or [Îêíà_Òûë_Ðåø] = "ðîëñòàâíè" Then resh14 = [Îêíà_Òûë_Ðåø] Else resh14 = 3 Else resh14 = 4
If [Áàëê_Òûë] > 1 Then If [Áàëê_Òûë_Ðåø] = "ðåø¸òêè" Or [Áàëê_Òûë_Ðåø] = "ðîëñòàâíè" Then resh15 = [Áàëê_Òûë_Ðåø] Else resh15 = 3 Else resh15 = 4


как это исправить
из буфера кидает ерунду
...
Рейтинг: 0 / 0
Помогите разобраться в результате VBA
    #39588749
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное, перед копированием надо переключить раскладку клавиатуры.
И предварительным просмотром сообщения полезно пользоваться.
...
Рейтинг: 0 / 0
Помогите разобраться в результате VBA
    #39588753
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,
спасибо про раскладку, не знал, а что отправлял я видел, просто не мог вставить правильно

Код: 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.
'Окна и балконы падежи и множественное число
 Select Case Окна_Ф
 Case 1
   eofa = " окно"
   eofm = " окно"
 Case 2, 3, 4
   eofa = " окна"
   eofm = " окна"
 Case Else
   eofa = " окон"
   eofm = " окна"
End Select
 Select Case Окна_Тор
 Case 1
   eotr = " окно"
   eotrm = " окно"
 Case 2, 3, 4
   eotr = " окна"
   eotrm = " окна"
 Case Else
   eotr = " окон"
   eotrm = " окна"
End Select
 Select Case Окна_Тыл
 Case 1
   eot = " окно"
   eotm = " окно"
 Case 2, 3, 4
   eot = " окна"
   eotm = " окна"
 Case Else
   eot = " окон"
   eotm = " окна"
End Select
 Select Case Балк_Ф
 Case 1
   ebf = " балкон"
   ebfm = " балкон"
 Case 2, 3, 4
   ebf = " балкона"
   ebfm = " балконы"
 Case Else
   ebf = " балконов"
   ebfm = " окна"
End Select
 Select Case Балк_Тор
 Case 1
   ebtr = " балкон"
   ebtrm = " балкон"
 Case 2, 3, 4
   ebtr = " балкона"
   ebtrm = " балконы"
 Case Else
   ebtr = " балконов"
   ebtrm = " балконы"
End Select
 Select Case Балк_Тыл
 Case 1
   ebt = " балкон"
   ebtm = " балкон"
 Case 2, 3, 4
   ebt = " балкона"
   ebtm = " балконы"
 Case Else
   ebt = " балконов"
   ebtm = " балконы"
End Select


'Обозначение наличия решеток
     If [Окна_Ф] > 0 Then If [Окна_Ф_Реш] = "решётки" Or [Окна_Ф_Реш] = "ролставни" Then resh10 = [Окна_Ф_Реш] Else resh10 = 3 Else resh10 = 4
     If [Балк_Ф] > 0 Then If [Балк_Ф_Реш] = "решётки" Or [Балк_Ф_Реш] = "ролставни" Then resh11 = [Балк_Ф_Реш] Else resh11 = 3 Else resh11 = 4
     If [Окна_Тор] > 0 Then If [Окна_Тор_Реш] = "решётки" Or [Окна_Тор_Реш] = "ролставни" Then resh12 = [Окна_Тор_Реш] Else resh12 = 3 Else resh12 = 4
     If [Балк_Тор] > 0 Then If [Балк_Тор_Реш] = "решётки" Or [Балк_Тор_Реш] = "ролставни" Then resh13 = [Балк_Тор_Реш] Else resh13 = 3 Else resh13 = 4
     If [Окна_Тыл] > 0 Then If [Окна_Тыл_Реш] = "решётки" Or [Окна_Тыл_Реш] = "ролставни" Then resh14 = [Окна_Тыл_Реш] Else resh14 = 3 Else resh14 = 4
     If [Балк_Тыл] > 0 Then If [Балк_Тыл_Реш] = "решётки" Or [Балк_Тыл_Реш] = "ролставни" Then resh15 = [Балк_Тыл_Реш] Else resh15 = 3 Else resh15 = 4
'Решёток нет
     If (resh10 = 3 Or resh10 = 4) And (resh11 = 3 Or resh11 = 4) And (resh12 = 3 Or resh12 = 4) And (resh13 = 3 Or resh13 = 4) And (resh14 = 3 Or resh14 = 4) And (resh15 = 3 Or resh15 = 4) Then
     resh20 = "Решётки или ролставни не установлены. "
'Решётки фасад и торец
      Else
      If (resh10 <> 3 Or resh10 <> 4) And (resh11 <> 3 Or resh11 <> 4) And (resh12 <> 3 Or resh12 <> 4) And (resh13 <> 3 Or resh13 <> 4) Then
      If resh10 = resh11 = resh12 = resh13 Then
      resh31 = "На" & eofm & " и" & ebtrm & " с фасада и торца установлены " & resh10
      Else
      resh31 = "Со стороны фасада на " & eofm & " установлены " & resh10 & ", а на " & ebfm & " установлены " & resh10 & ", со стороны торца на " & eotrm & " установлены " & resh10 & ", а на " & ebtrm & " установлены " & resh10
      End If
      Else
'Решётки фасад и тыл
        If (resh10 <> 3 Or resh10 <> 4) And (resh11 <> 3 Or resh11 <> 4) And (resh14 <> 3 Or resh14 <> 4) And (resh15 <> 3 Or resh15 <> 4) Then
        If resh10 = resh11 = resh14 = resh15 Then
        resh32 = "На" & eofm & " и" & ebtrm & " с фасада и тыла установлены " & resh10
        Else
        resh32 = "Со стороны фасада на " & eofm & " установлены " & resh10 & ", а на " & ebfm & " установлены " & resh10 & ", со стороны тыла на " & eotm & " установлены " & resh10 & ", а на " & ebtm & " установлены " & resh10
        End If
        Else
'Решётки торец и тыл
           If (resh12 <> 3 Or resh12 <> 4) And (resh13 <> 3 Or resh13 <> 4) And (resh14 <> 3 Or resh14 <> 4) And (resh15 <> 3 Or resh15 <> 4) Then
           If resh12 = resh13 = resh14 = resh15 Then
           resh33 = "На" & eofm & " и" & ebtrm & " с торца и тыла установлены " & resh10
           Else
           End If
           resh33 = "Со стороны торца на " & eofm & " установлены " & resh10 & ", а на " & ebfm & " установлены " & resh10 & ", со стороны тыла на " & eotm & " установлены " & resh10 & ", а на " & ebtm & " установлены " & resh10
           Else
'Решётки фасад
             If (resh10 <> 3 Or resh10 <> 4) And (resh11 <> 3 Or resh11 <> 4) Then
             If resh10 = resh11 Then
             resh21 = "На" & eofa & " и" & ebfm & " с фасада установлены " & resh11
             Else
             resh21 = "Со стороны фасада на " & eofa & " установлены " & resh10 & ", а на " & ebfm & " установлены " & resh11
             End If
             Else
'Решётки торец
                If (resh12 <> 3 Or resh13 <> 4) And (resh12 <> 3 Or resh13 <> 4) Then
                If resh12 = resh13 Then
                resh22 = "На" & eofa & " и" & ebfm & " с торца установлены " & resh12
                Else
                resh22 = "С торцевой стороны на " & eofa & " установлены " & resh12 & ", а на " & ebfm & " установлены " & resh13
                End If
                Else
'Решётки тыл
                   If (resh14 <> 3 Or resh15 <> 4) And (resh14 <> 3 Or resh15 <> 4) Then
                   If resh14 = resh15 Then
                   resh23 = "На" & eofa & " и" & ebfm & " с тыла установлены " & resh14
                   Else
                   resh23 = "С тыльной стороны на " & eofa & " установлены " & resh14 & ", а на " & ebfm & " установлены " & resh15
                   End If
                   Else
     If resh10 = resh11 = resh12 = resh13 = resh14 = resh15 Then
     resh35 = "На всех" & eofm & " и" & ebfm & " установлены " & resh10
     Else
     resh35 = "Со стороны фасада на " & eofm & " установлены " & resh10 & ", а на " & ebfm & " установлены " & resh10 & ", со стороны торца на " & eotrm & " установлены " & resh10 & ", а на " & ebtrm & " установлены " & resh10 & ", со стороны тыла на " & eotm & " установлены " & resh10 & ", а на " & ebtm & " установлены " & resh10
End If
End If
End If
End If
End If
End If
End If
End If




С учётом вышеупомянутых постов получился такой код, на выходе пока

"Со стороны фасада на окна установлены решётки, а на балкон установлены решётки, со стороны торца на окно установлены решётки, а на балкон установлены решётки"

Продолжаю дальше, всем спасибо, если будут идеи по сжатию кода, буду премного благодарен за совет.
...
Рейтинг: 0 / 0
Помогите разобраться в результате VBA
    #39588755
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
научился пользоваться спойлером -)
...
Рейтинг: 0 / 0
Помогите разобраться в результате VBA
    #39588757
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКА,

про Case впервые узнал, тоже понравился, понятная штука.
...
Рейтинг: 0 / 0
Помогите разобраться в результате VBA
    #39588763
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005Продолжаю дальше, всем спасибо, если будут идеи по сжатию кода, буду премного благодарен за совет.
Идея есть.
Сейчас пока некогда и компьютер недоступен,
а с планшета не хочется набирать, ошибки сажать.
Но идея есть.
...
Рейтинг: 0 / 0
Помогите разобраться в результате VBA
    #39588769
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

Спасибо, я всё равно уже спать, так что до завтрашнего обеда время есть!
...
Рейтинг: 0 / 0
Помогите разобраться в результате VBA
    #39588770
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005,
можно сделать функции
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
 eofa = Okn1(Окна_Ф.value, 1)
eofm= Okn1(Окна_Ф.value, 2)
eotr =Okn1(Окна_Тор.value,1)
eotrm =Okn1(Окна_Тор.value,2)
   eot =Okn1(Окна_Тыл.value,1)
eotm =Okn1(Окна_Тыл.value,2)

Private function  Okn1(timp%, vid%) as string
select case timp
Case 1: Okn1=" окно"
Case 2,3,4: Okn1= " окна"
case else
If vid=1 then Okn1=" окон" else  Okn1 = " окна"
End select
end function



и тыпы
...
Рейтинг: 0 / 0
Помогите разобраться в результате VBA
    #39589591
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

Спасибо за совет, но всё равно она примерно такая же по размеру, в сравнении с CASE.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите разобраться в результате VBA
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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