Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 17.01.2013
Сообщений: 17

Запись в массив и вывод в MsgBox

06.07.2014, 22:05. Показов 1491. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!

встал следующий вопрос, есть форма в ленточном исполнении.
необходимо по нажатию кнопки "Сохранить" вывести в MsgBox отмеченные строки в форме.
на данный момент выводить сообщение, но при отмеченных нескольких строках, выводиться последняя.
я понимаю, что данные при выводе просто перезаписываются, но как вывести все отмеченные ??
Вложения
Тип файла: 7z Пример.7z (16.0 Кб, 11 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.07.2014, 22:05
Ответы с готовыми решениями:

Проверка нескольких записей, соответствующих одному условию. Вывод нессоттветствующих записей в MsgBox.
День добрый. Мои знания в программировании растут очень вяло, но по традиции я пытаюсь задавать вопросы в крайней необходимости :) ....

Добавляю запись в базу данных и юзеру через msgbox хочу сказать об этом, но получаю еррор msgbox 'Permission denied'
Добавляю запись в базу данных и юзеру через msgbox хочу сказать об этом, но получаю еррор msgbox 'Permission denied' В чем грабли?...

Ошибка The type or namespace name 'MsgBox' does not exist in the class or namespace 'MsgBox.MsgBox' (are you missing an assembly reference?)
Есть Class Library, написанная на VB.NET. Компилирую, вставляю assembly в VB.NET, все работает. Вставляю в проект на C#, не работает. Делаю...

9
1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
06.07.2014, 22:39
Цитата Сообщение от fanat_vlg Посмотреть сообщение
вывести в MsgBox отмеченные строки в форме
сообщение может быть длинной не более 1024 знака, а что делать если строк будет много?
Цитата Сообщение от fanat_vlg Посмотреть сообщение
но при отмеченных нескольких строках, выводиться последняя
в данном примере обрабатывается не последняя отмеченная запись а та которая выделена (текущая)

сопоставив тему, и то что вы пытаетесь получить - я не пойму с чего начать)
0
0 / 0 / 0
Регистрация: 17.01.2013
Сообщений: 17
06.07.2014, 22:48  [ТС]
boby104,
Цитата Сообщение от boby104 Посмотреть сообщение
сообщение может быть длинной не более 1024 знака, а что делать если строк будет много?
спс, за подсказку. я потом переделаю в отчет или еще как.
Цитата Сообщение от boby104 Посмотреть сообщение
в данном примере обрабатывается не последняя отмеченная запись а та которая выделена (текущая)
в данном примере выводиться именно последняя отмеченная строк, по логике я понимаю, что все записанное до этого просто перезаписывается. выделенная строка это просто не снял галочку и сохранил.
Цитата Сообщение от boby104 Посмотреть сообщение
сопоставив тему, и то что вы пытаетесь получить - я не пойму с чего начать)
мне необходимо вывести на экран отмеченные строки. это можно сделать или через отчет или еще как.

я только учусь, помогите разобраться.
0
1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
06.07.2014, 23:11
Цитата Сообщение от fanat_vlg Посмотреть сообщение
мне необходимо вывести на экран отмеченные строки.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Dim str As String
Dim rst As Recordset
Me.Dirty = False
Set rst = Me.RecordsetClone
rst.MoveFirst
i = 0
Do While Not rst.EOF
If rst!Rabotaet = -1 Then
i = i + 1
    str = str & rst!Код & rst!Naimen & rst!Gorod & rst!FIO & rst!Rabotaet
End If
rst.MoveNext
Loop
If i > 0 Then
MsgBox "Проверка" & str
Else
MsgBox "Ничего не выбрано"
End If
попробуй так

Добавлено через 4 минуты
Цитата Сообщение от fanat_vlg Посмотреть сообщение
в данном примере выводиться именно последняя отмеченная строк
ты упертый) только все же правильно не последняя отмеченная, а та где находится курсор (текущая)
просто ты когда пробуешь код, перед этим снимаешь или ставишь галку и жмешь кнопку - поэтому последняя отмеченная строка совпадает с текущей записью. Чтоб убедиться постав галку но перед тем как жать кликни на записи где галка не стоит
1
0 / 0 / 0
Регистрация: 17.01.2013
Сообщений: 17
06.07.2014, 23:35  [ТС]
ну наконец то сдвинулось с места. теперь буду разбираться с кодом, что к чему.

boby104, спасибо огромно! работает.

я немного подправил код для сокращения, будет ли это правильным и разумным?
убрал переменную i и заменил на If Me.RecordsetClone.RecordCount > 0 Then

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub Сохранить_Click()
Dim str As String
Dim rst As Recordset
Me.Dirty = False
Set rst = Me.RecordsetClone
rst.MoveFirst
'i = 0
Do While Not rst.EOF
If rst!Rabotaet = -1 Then
'i = i + 1
    str = str & rst!Код & rst!Naimen & rst!Gorod & rst!FIO & rst!Rabotaet
End If
rst.MoveNext
Loop
If Me.RecordsetClone.RecordCount > 0 Then
MsgBox "Проверка" & str
Else
MsgBox "Ничего не выбрано"
End If
End Sub
до этого работал с php и sql? в написанном понимаю условие, но не могу понять где переменные, где свойства и т.п., если конечно не затруднит, не могли бы расписать это маленький код, что где.
к примеру что означает
SQL
1
rst.EOF
, интересует конечно весь код.
0
1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
07.07.2014, 10:30
Цитата Сообщение от fanat_vlg Посмотреть сообщение
это маленький код, что где.
Visual Basic
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
Private Sub Сохранить_Click()
Dim str AS String ‘ переменная в которую будет дописываться значения нужных строк
Dim rst AS Recordset ‘ создаем набор записей на основе открытой формы (чтоб не елозить по самим записям
Me.Dirty = FALSE ‘ записываем все последние изменения на форме в таблицу данных перед анализом (используем свойство формы) 
 
SET rst = Me.RecordsetClone ‘ присваиваем переменной значения нашего рекордсета (набора записей) нашей переменной
rst.MoveFirst ‘ переход на первую запись набора записей
 
i = 0 ‘ это нужно было для подсчета строк, которые удовлетворяют нашему условию
 
Do While Not rst.EOF ‘ делаем цикл пока не будет конец набора записей, если записей нет, то в цикл не входим
 
If rst!Rabotaet = -1 Then ‘ проверка условия
 
i = i + 1 ‘ увеличиваем счетчик нужных записей
 
    str = str & rst!Код & rst!Naimen & rst!Gorod & rst!FIO & rst!Rabotaet ‘ обрати внимание что рекордсет обращается к данным а не к полям формы rst!FIO
END IF
rst.MoveNext ‘ переход на следующую запись
 
Loop 
 
‘ IF Me.RecordsetClone.RecordCount > 0 THEN ‘ твое условие не верно, так набор может содержать записи а нужных среди них нет вообще
IF i>0  THEN ‘ если нужные записи в наборе оказались то выводим о них сообщение
MsgBox "Проверка" & str,, "Отобрано " & I & " записей"
ELSE
MsgBox "Ничего не выбрано"
END IF
END Sub
0
0 / 0 / 0
Регистрация: 17.01.2013
Сообщений: 17
07.07.2014, 10:46  [ТС]
boby104, спасибо огромное!

буду учить и модернизировать.

и еще вопросик
Цитата Сообщение от boby104 Посмотреть сообщение
‘ IF Me.RecordsetClone.RecordCount > 0 THEN ‘ твое условие не верно, так набор может содержать записи а нужных среди них нет вообще
т.е. условие может сработать даже если записи не выбраны, как так?
0
1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
07.07.2014, 10:54
Цитата Сообщение от fanat_vlg Посмотреть сообщение
условие может сработать даже если записи не выбраны, как так?
в этом случае ты путаешь отобраные записи по условию (пример: когда на форме перед входом в процедуру добавить фильтр чтоб отобрать только отмеченные Рбаотае(-1да) то в ресордсетклоун поподут только нужные записи или Ничего, в этом случае можно использовать подсчет записей в рекордсете. В нашем же случае есть поле Работает логическое содержащие значения (-1да или 0нет) и в набор записей попадают все строки втом числе и со значением Работает (да нет или отсутствует), и чтоб определить сколько их них содержит -1да мы добавляем счетчик
0
0 / 0 / 0
Регистрация: 17.01.2013
Сообщений: 17
07.07.2014, 11:06  [ТС]
понял как это работает, да данный метод не подходит, т.к. в таблице уже существуют записи со значением в логическом поле и даже если не выбрать, выводит пустое значение, т.к. в запросе этих записей нет, а в таблице они существуют.

ничего страшно, теперь начинаю немного вникать, спс за помощь.
0
0 / 0 / 0
Регистрация: 17.01.2013
Сообщений: 17
10.07.2014, 11:46  [ТС]
пересмотрел исполнение задачи. может так получиться.

есть
- две таблицы tbl1 и tbl2
- одна форма frm
- один listbox (выделение: простое)
- одна кнопка "сохранить"

необходимо
- вывести в listbox данные из таблицы tbl1 с фильтром (уже реализовано)
- выбрать из таблицы tbl1 несколько записей (от 1 до n)
- при нажатии на кнопку "сохранить"
--вывести на экран выбранные позиции (желательно в отдельном окне или поле)
--в выделенных записях в tbl1 обновить поле (изначально оно пустое)
--в tbl2 создать новую запись
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.07.2014, 11:46
Помогаю со студенческими работами здесь

Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран
1.Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран 2.Ввод с клавиатуры и запись в массив,...

Вывод числа в MsgBox
Забыл как выводить в msgbox число.Помню что & ставиться и что-то там ещё Вот тут как сделать например Dim a As Double a=100 ...

вывод MsgBox на несколько компов
Здравствуйте. В сетевой папке лежит файл test.xlsm, в течение рабочего дня этот файл открыт на нескольких компах, но когда необходимо...

Вывод значения Timer в MsgBox
Раньше, когда я юзал VB6, проблем небыло. Был код Private Sub Command2_Click() Dim iTimer! iTimer! = Timer . . Код программы ...

Аргументы командной строки и вывод в MsgBox
Напишите пожайлуста vbs Скрипт, который запускается либо с параметром -r либо -e, если он запускается с параметром -e, то MSGBOX...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru