Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 | 2 |

 

  Вопрос: Заполнение TextBox'ов Циклом Добавлено: 30.09.08 09:22  

Автор вопроса:  acidsting
Добрый день!

Возникла потребность заполнить 14 TextBox'ов датами следующим образом: textbox1 - сегодняшняя дата, textbox2 - завтрашняя дата, textbox3 - послезавтрашняя дата и т.д.

В результате получился следующий код:



'Вставляем текущую дату
Dim Date0, Date1 As Date
Dim DayNumb, Numb, Count
Date0 = Date

' Определение первой даты
Date1 = InputBox("Введите первое число отчетного периода" & Chr(13) & "Маска ввода: ДД.ММ.ГГГГ", "Определение начала периода", Date0)

' Определение количества дней
DayNumb = InputBox("Введите количество дней отчетного периода" & Chr(13) & "Маска ввода: №№", "Определение количества дней", 7)

Numb = DayNumb
Count = DayNumb - 1

For DayNumb = 1 To Numb
    TextBoxDayNumb.Text = Date1 + Count
Next DayNumb



Подскажите, пожалуйста, как в цикле корректно определить TextBox от 1 до 14

Ответить

  Ответы Всего ответов: 16  

Номер ответа: 1
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #1
Добавлено: 30.09.08 13:27
Dim Date0, Date1 As Date
Dim DayNumb, Numb, Count
Date0 = Date

Что за фигня? И зачем ты себе ищещь проблем с Variant'ом? Ты пропиши правильно типы данных, не путай имен переменных и именами типов данных и приводи, если не уверен, тип к нужному прежде, чем использовать значение переменной в вычислениях.

Подскажите, пожалуйста, как в цикле корректно определить TextBox от 1 до 14

Наверное тебе надо знать про массивы контролов, тогда тебе понадобится в коде изменить только 1 строку:
  1. TextBox(DayNumb).Text = Date1 + Count

Ответить

Номер ответа: 2
Автор ответа:
 acidsting



Вопросов: 3
Ответов: 6
 Профиль | | #2 Добавлено: 30.09.08 13:58
  1. TextBox(DayNumb).Text = Date1 + Count

Пробовал, не работает

VBA знаю поверхностно, поэтому возможны ошибки. Вот, что получилось на данном этапе
Может и некрасиво, зато работает.

  1. 'Вставляем текущую дату
  2. Dim Date0, Date1 As Date
  3. Dim Numb As Integer
  4. Date0 = Date
  5.  
  6. ' Определение первой даты
  7. Date1 = InputBox("Введите первое число отчетного периода" & Chr(13) & "Маска ввода: ДД.ММ.ГГГГ", "Определение начала периода", Date0)
  8.  
  9. '##########################################################
  10. 'Маркер для условного перехода. Некрасиво, зато работает.
  11. l1:
  12.  
  13. ' Определение количества дней
  14. Numb = InputBox("Введите количество дней отчетного периода" & Chr(13) & "Значение должно быть в интервале от '1' до '14' " & Chr(13) & "Маска ввода: №№", "Определение количества дней", 7)
  15.  
  16. If (Numb > 14) Or (Numb < 1) Then
  17. MsgBox ("Ошибка ввода данных." & Chr(13) & "Количество дней отчетного периода должно быть в интервале от '1' до '14'")
  18. GoTo l1
  19. End If
  20.  
  21. If Numb = 1 Then
  22. TextBox1.Text = Date1
  23. TextBox2.Text = ""
  24. TextBox3.Text = ""
  25. TextBox4.Text = ""
  26. TextBox5.Text = ""
  27. TextBox6.Text = ""
  28. TextBox7.Text = ""
  29. TextBox8.Text = ""
  30. TextBox9.Text = ""
  31. TextBox10.Text = ""
  32. TextBox11.Text = ""
  33. TextBox12.Text = ""
  34. TextBox13.Text = ""
  35. TextBox14.Text = ""
  36.     Else
  37.     If Numb = 2 Then
  38.     TextBox1.Text = Date1
  39.     TextBox2.Text = Date1 + 1
  40.     TextBox3.Text = ""
  41.     TextBox4.Text = ""
  42.     TextBox5.Text = ""
  43.     TextBox6.Text = ""
  44.     TextBox7.Text = ""
  45.     TextBox8.Text = ""
  46.     TextBox9.Text = ""
  47.     TextBox10.Text = ""
  48.     TextBox11.Text = ""
  49.     TextBox12.Text = ""
  50.     TextBox13.Text = ""
  51.     TextBox14.Text = ""
  52.         Else
  53.         If Numb = 3 Then
  54.         TextBox1.Text = Date1
  55.         TextBox2.Text = Date1 + 1
  56.         TextBox3.Text = Date1 + 2
  57.         TextBox4.Text = ""
  58.         TextBox5.Text = ""
  59.         TextBox6.Text = ""
  60.         TextBox7.Text = ""
  61.         TextBox8.Text = ""
  62.         TextBox9.Text = ""
  63.         TextBox10.Text = ""
  64.         TextBox11.Text = ""
  65.         TextBox12.Text = ""
  66.         TextBox13.Text = ""
  67.         TextBox14.Text = ""
  68.             Else
  69.             If Numb = 4 Then
  70.             TextBox1.Text = Date1
  71.             TextBox2.Text = Date1 + 1
  72.             TextBox3.Text = Date1 + 2
  73.             TextBox4.Text = Date1 + 3
  74.             TextBox5.Text = ""
  75.             TextBox6.Text = ""
  76.             TextBox7.Text = ""
  77.             TextBox8.Text = ""
  78.             TextBox9.Text = ""
  79.             TextBox10.Text = ""
  80.             TextBox11.Text = ""
  81.             TextBox12.Text = ""
  82.             TextBox13.Text = ""
  83.             TextBox14.Text = ""
  84.                 Else
  85.                 If Numb = 5 Then
  86.                 TextBox1.Text = Date1
  87.                 TextBox2.Text = Date1 + 1
  88.                 TextBox3.Text = Date1 + 2
  89.                 TextBox4.Text = Date1 + 3
  90.                 TextBox5.Text = Date1 + 4
  91.                 TextBox6.Text = ""
  92.                 TextBox7.Text = ""
  93.                 TextBox8.Text = ""
  94.                 TextBox9.Text = ""
  95.                 TextBox10.Text = ""
  96.                 TextBox11.Text = ""
  97.                 TextBox12.Text = ""
  98.                 TextBox13.Text = ""
  99.                 TextBox14.Text = ""
  100.                     Else
  101.                     If Numb = 6 Then
  102.                     TextBox1.Text = Date1
  103.                     TextBox2.Text = Date1 + 1
  104.                     TextBox3.Text = Date1 + 2
  105.                     TextBox4.Text = Date1 + 3
  106.                     TextBox5.Text = Date1 + 4
  107.                     TextBox6.Text = Date1 + 5
  108.                     TextBox7.Text = ""
  109.                     TextBox8.Text = ""
  110.                     TextBox9.Text = ""
  111.                     TextBox10.Text = ""
  112.                     TextBox11.Text = ""
  113.                     TextBox12.Text = ""
  114.                     TextBox13.Text = ""
  115.                     TextBox14.Text = ""
  116.                         Else
  117.                         If Numb = 7 Then
  118.                         TextBox1.Text = Date1
  119.                         TextBox2.Text = Date1 + 1
  120.                         TextBox3.Text = Date1 + 2
  121.                         TextBox4.Text = Date1 + 3
  122.                         TextBox5.Text = Date1 + 4
  123.                         TextBox6.Text = Date1 + 5
  124.                         TextBox7.Text = Date1 + 6
  125.                         TextBox8.Text = ""
  126.                         TextBox9.Text = ""
  127.                         TextBox10.Text = ""
  128.                         TextBox11.Text = ""
  129.                         TextBox12.Text = ""
  130.                         TextBox13.Text = ""
  131.                         TextBox14.Text = ""
  132.                             Else
  133.                             If Numb = 8 Then
  134.                             TextBox1.Text = Date1
  135.                             TextBox2.Text = Date1 + 1
  136.                             TextBox3.Text = Date1 + 2
  137.                             TextBox4.Text = Date1 + 3
  138.                             TextBox5.Text = Date1 + 4
  139.                             TextBox6.Text = Date1 + 5
  140.                             TextBox7.Text = Date1 + 6
  141.                             TextBox8.Text = Date1 + 7
  142.                             TextBox9.Text = ""
  143.                             TextBox10.Text = ""
  144.                             TextBox11.Text = ""
  145.                             TextBox12.Text = ""
  146.                             TextBox13.Text = ""
  147.                             TextBox14.Text = ""
  148.                                 Else
  149.                                 If Numb = 9 Then
  150.                                 TextBox1.Text = Date1
  151.                                 TextBox2.Text = Date1 + 1
  152.                                 TextBox3.Text = Date1 + 2
  153.                                 TextBox4.Text = Date1 + 3
  154.                                 TextBox5.Text = Date1 + 4
  155.                                 TextBox6.Text = Date1 + 5
  156.                                 TextBox7.Text = Date1 + 6
  157.                                 TextBox8.Text = Date1 + 7
  158.                                 TextBox9.Text = Date1 + 8
  159.                                 TextBox10.Text = ""
  160.                                 TextBox11.Text = ""
  161.                                 TextBox12.Text = ""
  162.                                 TextBox13.Text = ""
  163.                                 TextBox14.Text = ""
  164.                                     Else
  165.                                     If Numb = 10 Then
  166.                                     TextBox1.Text = Date1
  167.                                     TextBox2.Text = Date1 + 1
  168.                                     TextBox3.Text = Date1 + 2
  169.                                     TextBox4.Text = Date1 + 3
  170.                                     TextBox5.Text = Date1 + 4
  171.                                     TextBox6.Text = Date1 + 5
  172.                                     TextBox7.Text = Date1 + 6
  173.                                     TextBox8.Text = Date1 + 7
  174.                                     TextBox9.Text = Date1 + 8
  175.                                     TextBox10.Text = Date1 + 9
  176.                                     TextBox11.Text = ""
  177.                                     TextBox12.Text = ""
  178.                                     TextBox13.Text = ""
  179.                                     TextBox14.Text = ""
  180.                                         Else
  181.                                         If Numb = 11 Then
  182.                                         TextBox1.Text = Date1
  183.                                         TextBox2.Text = Date1 + 1
  184.                                         TextBox3.Text = Date1 + 2
  185.                                         TextBox4.Text = Date1 + 3
  186.                                         TextBox5.Text = Date1 + 4
  187.                                         TextBox6.Text = Date1 + 5
  188.                                         TextBox7.Text = Date1 + 6
  189.                                         TextBox8.Text = Date1 + 7
  190.                                         TextBox9.Text = Date1 + 8
  191.                                         TextBox10.Text = Date1 + 9
  192.                                         TextBox11.Text = Date1 + 10
  193.                                         TextBox12.Text = ""
  194.                                         TextBox13.Text = ""
  195.                                         TextBox14.Text = ""
  196.                                             Else
  197.                                             If Numb = 12 Then
  198.                                             TextBox1.Text = Date1
  199.                                             TextBox2.Text = Date1 + 1
  200.                                             TextBox3.Text = Date1 + 2
  201.                                             TextBox4.Text = Date1 + 3
  202.                                             TextBox5.Text = Date1 + 4
  203.                                             TextBox6.Text = Date1 + 5
  204.                                             TextBox7.Text = Date1 + 6
  205.                                             TextBox8.Text = Date1 + 7
  206.                                             TextBox9.Text = Date1 + 8
  207.                                             TextBox10.Text = Date1 + 9
  208.                                             TextBox11.Text = Date1 + 10
  209.                                             TextBox12.Text = Date1 + 11
  210.                                             TextBox13.Text = ""
  211.                                             TextBox14.Text = ""
  212.                                                 Else
  213.                                                 If Numb = 13 Then
  214.                                                 TextBox1.Text = Date1
  215.                                                 TextBox2.Text = Date1 + 1
  216.                                                 TextBox3.Text = Date1 + 2
  217.                                                 TextBox4.Text = Date1 + 3
  218.                                                 TextBox5.Text = Date1 + 4
  219.                                                 TextBox6.Text = Date1 + 5
  220.                                                 TextBox7.Text = Date1 + 6
  221.                                                 TextBox8.Text = Date1 + 7
  222.                                                 TextBox9.Text = Date1 + 8
  223.                                                 TextBox10.Text = Date1 + 9
  224.                                                 TextBox11.Text = Date1 + 10
  225.                                                 TextBox12.Text = Date1 + 11
  226.                                                 TextBox13.Text = Date1 + 12
  227.                                                 TextBox14.Text = ""
  228.                                                     Else
  229.                                                     If Numb = 14 Then
  230.                                                     TextBox1.Text = Date1
  231.                                                     TextBox2.Text = Date1 + 1
  232.                                                     TextBox3.Text = Date1 + 2
  233.                                                     TextBox4.Text = Date1 + 3
  234.                                                     TextBox5.Text = Date1 + 4
  235.                                                     TextBox6.Text = Date1 + 5
  236.                                                     TextBox7.Text = Date1 + 6
  237.                                                     TextBox8.Text = Date1 + 7
  238.                                                     TextBox9.Text = Date1 + 8
  239.                                                     TextBox10.Text = Date1 + 9
  240.                                                     TextBox11.Text = Date1 + 10
  241.                                                     TextBox12.Text = Date1 + 11
  242.                                                     TextBox13.Text = Date1 + 12
  243.                                                     TextBox14.Text = Date1 + 13
  244.                                                     End If
  245.                                                 End If
  246.                                             End If
  247.                                         End If
  248.                                     End If
  249.                                 End If
  250.                             End If
  251.                         End If
  252.                     End If
  253.                 End If
  254.             End If
  255.         End If
  256.     End If
  257. End If

Ответить

Номер ответа: 3
Автор ответа:
 KiZ



Вопросов: 27
Ответов: 68
 Профиль | | #3 Добавлено: 30.09.08 15:22
omg ) по Select Case почитай хелп))

Ответить

Номер ответа: 4
Автор ответа:
 Skywalker



ICQ: 300-70-6пятьЪ 

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #4
Добавлено: 30.09.08 16:10
а лоооооооооооооооооооооооооооооол бугогааааа


TextBox(DayNumb).Text = Date1 + Count
Пробовал, не работает


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

Ответить

Номер ответа: 5
Автор ответа:
 Серёга



ICQ: 262809473 

Вопросов: 17
Ответов: 561
 Web-сайт: houselab.narod.ru
 Профиль | | #5
Добавлено: 30.09.08 16:30
я тут прочитал пост №2.
Вывод: Очень хорошо, что текстбоксов было только 14, а ведь могло быть и больше :)

Ответить

Номер ответа: 6
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #6
Добавлено: 01.10.08 11:16
Может и некрасиво, зато работает.

Ты меня развеселил на все утро )))

Ответить

Номер ответа: 7
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #7 Добавлено: 01.10.08 18:40
'Вставляем текущую дату
Dim Date1 As Date
Dim DayNumb As Byte

' Определение первой даты
Date1 = InputBox("Введите первое число отчетного периода" & Chr(13) & "Маска ввода: ДД/ММ/ГГГГ", _
                 "Определение начала периода", _
                 Date)

' Определение количества дней
DayNumb = InputBox("Введите количество дней отчетного периода" & Chr(13) & "Маска ввода: №№", _
                   "Определение количества дней", _
                   7)

i = 1
For Each tb In UserForm1.Controls       'для каждого текстбокса
  If i <= DayNumb Then                  'повторять все количество дней отчетного периода
    If tb.Name = "TextBox" & i Then     'перебор текстбоксов по порядку
      tb.Value = Str(DateAdd("d", i - 1, Date1))    'вставка даты. Дата высчитывается из заданной путем прибавления количества дней
      i = i + 1                         'переход к следующему номеру текстбокса
    End If
  Else
    Exit For
  End If
Next tb                                 'переход к следующему текстбоксу

Работает на любое количество дней и только, если текстбоксы названы по умолчанию и расставлены на форме по порядку. :-)

Ответить

Номер ответа: 8
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #8 Добавлено: 01.10.08 18:48
Обработку корректности ввода данных вставь на свой вкус. :-)

Ответить

Номер ответа: 9
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #9
Добавлено: 01.10.08 20:46
Jasmin, это другое дело ;)

Ответить

Номер ответа: 10
Автор ответа:
  j3d1



ICQ: 8370005 

Вопросов: 34
Ответов: 466
 Профиль | | #10 Добавлено: 01.10.08 23:28
ещё боксы сгруппировать можно и будет обрабатывать ещё и их события одной ф-ёй

Ответить

Номер ответа: 11
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #11 Добавлено: 02.10.08 17:15
To mc-black: Ну надо же человеку помочь. :-) А если бы у него на весь год были текстбоксы ? 8-)

Ответить

Номер ответа: 12
Автор ответа:
 Aston



ICQ: 214-179-991 

Вопросов: 42
Ответов: 272
 Профиль | | #12 Добавлено: 04.10.08 00:39
Привет всем. Да интересный приём). По моему мнению лучше всего мне кажется, было использовать индекс в цикле текстбоксов. То есть создать массив текстбоксов состоящий из 14 текстбоксов и потом в цикле менять просто индекс.
TextBox(1) =
TextBox(2) =
а в цикле просто:
TextBox(i) =
)

Ответить

Номер ответа: 13
Автор ответа:
 acidsting



Вопросов: 3
Ответов: 6
 Профиль | | #13 Добавлено: 06.10.08 16:50
Спасибо большое!
Попробую

Ответить

Номер ответа: 14
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #14 Добавлено: 06.10.08 23:33
А че, мне ответ номер 2 понравился

Ответить

Номер ответа: 15
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #15
Добавлено: 07.10.08 09:24
Перенесите топик в раздел Юмор )

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам