Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 02.03.2012
Сообщений: 9

Как сделать рандомный выбор данных из БД Access в проекте

16.12.2013, 22:24. Показов 1938. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня тестовая программа и нужно чтоб 100 вопросов которые в базе данных какждый раз в перемешку выбирались...
Вложения
Тип файла: rar курсовой3.rar (1.22 Мб, 16 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.12.2013, 22:24
Ответы с готовыми решениями:

Как сделать рандомный выбор файла из папки?
Есть такой код <?php $d = opendir("Z:\home\postucoz\www\data\news"); while ($name = readdir($d)){ if ($name == "." or $name ==...

Рандомный выбор из Access
Есть программа "Тест" - никак не получается сделать толковый рандомный выбор из базы данных. Нашёл "костыль", но не достоверная...

Рандомный выбор данных
Помогите пожалуйста, две недели мучаюсь, не могу перемешать ответы. Тест берется из файла. Создать программу для решение теста по любой...

5
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
16.12.2013, 23:47
Можно сделать функцию, которая будет отдавать рандомно сортированный рекордсет
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Public Function randomQuestion(path) As ADODB.Recordset
'path - путь к БД
    Dim rst As Object, cn As Object
    Dim s as String
    Set cn = CreateObject("ADODB.Connection")
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path & ";Mode=Share Deny None;Persist Security Info=False"
    Set rst = CreateObject("ADODB.Recordset")
    Randomize
    s = "select * from Таблица1 order by Rnd(Код)"
    rst.Open s, cn, adOpenDynamic
    Set randomQuestion = rst
    Set rst = Nothing
    Set cn = Nothing
End Function
Пример как пользоваться функцией
Visual Basic
1
2
3
4
5
6
7
8
Sub srndQuestion()
    With randomQuestion("C:\Temp\db3.mdb")
    Do Until .EOF
        Debug.Print !Код
        .MoveNext
    Loop
    End With
End Sub
1
0 / 0 / 0
Регистрация: 02.03.2012
Сообщений: 9
17.12.2013, 00:04  [ТС]
Спасибо, можете помочь к моей программе его реализовать, а то я с Базами Данных не очень дружу, пожалуйста.... в моей программе подключена БД , но она вопросы теста выводить последовательно с первого и выводит до тех пор пока не закончатся записи в бд..помогите пожалуйста сделать чтоб оно каждый раз перемешивало их а не с первого.
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
17.12.2013, 01:08
Katyshka_CAT, я немного неряшливо написал. В такой постановке вам все равно придется в референсах присоединить библиотеку ADO - Microsoft ActiveX Data Objects XX.X Library.

К сожалению, сейчас у меня не установлен VB и поэтому посмотреть вашу программу не могу.
Может быть вам удобнее будет работать с массивом? Тогда переделаем немного программу. И устанавливать библиотеку не придется

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
Public masv
 
Public Function randomQuestion(path) ' As ADODB.Recordset
'path - путь к БД
    Dim rst As Object, cn As Object
    Dim s
    Set cn = CreateObject("ADODB.Connection")
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path & ";Mode=Share Deny None;Persist Security Info=False"
    Set rst = CreateObject("ADODB.Recordset")
    Randomize
    s = "select * from Таблица1 order by Rnd(Код)"
    rst.Open s, cn, 1 'adopenkeyset
    masv = rst.GetRows 'Загоняем рекордсет в паблик-массив
'    Set randomQuestion = rst
    Set rst = Nothing
    Set cn = Nothing
End Function
 
Sub srandomQuestion()
    Dim i, j
    With randomQuestion("C:\Temp\db3.mdb")
    For i = 0 To UBound(masv, 2)
        Debug.Print masv(0, i), masv(1, i), masv(2, i), masv(3, i), masv(4, i), masv(5, i)
    Next
    End With
End Sub
Попробуйте скопировать функцию и процедуру, замените путь на правильный в srandomQuestion и выполните srandomQuestion. Правда, все поля в таблице пустые, кроме Код, но и этого достаточно для эксперимента.
1
0 / 0 / 0
Регистрация: 02.03.2012
Сообщений: 9
17.12.2013, 01:55  [ТС]
mobile , к сожалению, работает она не так как нужно, мы можем завтра где то это утром обсудить???, просто в среду нужно это сдать а он не готово, если это вас не затруднит..
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
17.12.2013, 06:34
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Katyshka_CAT, как я уже писал, сейчас VB у меня нет и поэтому сделал пример в екселе с выводом пересортированного массива на лист. В массиве данные из таблицы БД. В екселе надо задать путь к БД и количество вопросов. Количество вопросов не должно быть больше количества записей в таблице БД. Впрочем, в программе на этот счет есть проверка и, если заданное количество больше разрешенного, то оно приравнивается к количеству записей в таблице.

Код в модуле Module1
Вложения
Тип файла: rar RandQuestions.rar (19.3 Кб, 19 просмотров)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.12.2013, 06:34
Помогаю со студенческими работами здесь

Рандомный выбор данных на странице
Всем привет, в php я не очень разбираюсь, нужна помощь. В общем есть главная страница на которой есть блок с php файлом, в нем таблица с...

Работа с БД в Lazarus. Заполнения нужных данных и рандомный выбор в таблице
Здравствуйте. Необходимо следующие: 1 Заполнить базу данных нужными данными с возможностью изменять их. 2. Рандомный выбор который в...

Как сделать, чтобы через базу данных отображались картинки в проекте Delphi?
Пишу программу "Тестирование ПДД" (курсовой проект). Необходимо, сделать так, чтобы при нажатии на запись, вопросы будут считываться из БД,...

Рандомный выбор вопросов ( как в тесте)
Добрый день, есть тест с вопросами, мне необходимо поставить, чтобы при нажатии на любую из страниц, была возможность отвечать только на 1...

Копия Базы данных Access в проекте
Выполнял подключение access к проекту в visual studio, добавил копию файла с базой данных в сам проект, но при добавлении строк в этот файл...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru