|
|
|
Как выбрать (без критериев) из 100 записей только несколько
|
|||
|---|---|---|---|
|
#18+
сложно в название темы все объяснить Есть база данных вопросов для тестов. Пользователь может задать сколько он вопросов для теста хочет отобрать (например 10). Т.е. понятно что отбираю вопросы по нужной ему теме, по уровню, но вот как их этого количество (например 100) просто взять 10 ЛЮБЫХ да еще что бы они рандомально отбирались? помогите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2004, 12:24 |
|
||
|
Как выбрать (без критериев) из 100 записей только несколько
|
|||
|---|---|---|---|
|
#18+
Если у этих вопросов есть ID , то генератор случайных чисел тебе поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2004, 12:29 |
|
||
|
Как выбрать (без критериев) из 100 записей только несколько
|
|||
|---|---|---|---|
|
#18+
ID есть, но проблема в том, что когда я отобрала эти вопросы по другим критерием (тема теста,сложность), то у них теперь ID идут не безпрерывно, например выпали вопросы с ID 3, 4, 8, 10, 30, 34, 40, 58 и т.д А мне теперь надо отобрать 5 вопросов. Как? У меня была мысль, что может в Запросе можно добавлять поле типа автонумерация, но я такой опции не нашла. А если уж говорить о генераторе случайных чисел то как избежать дублежа впросов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2004, 14:32 |
|
||
|
Как выбрать (без критериев) из 100 записей только несколько
|
|||
|---|---|---|---|
|
#18+
Автонумерация в запросе http://am.rusimport.ru/MsAccess/topic.aspx?ID=87 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2004, 15:28 |
|
||
|
Как выбрать (без критериев) из 100 записей только несколько
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2004, 16:06 |
|
||
|
Как выбрать (без критериев) из 100 записей только несколько
|
|||
|---|---|---|---|
|
#18+
schakh Я честно с ACCESS совсем недавно работаю, по этому не судите строго за глупые вопросы, но все эти селекты куда я дожна помещать? в код VB? и Podzapros.id это как понять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2004, 16:39 |
|
||
|
Как выбрать (без критериев) из 100 записей только несколько
|
|||
|---|---|---|---|
|
#18+
А зачем программировать в Access. Есть база подключись средствами Delphi, VB. А там уже можно делать что хочешь. Написано на VB. В List1 записывается что то из запроса (твои вопросы) В List2 всё нумеруется в арифметическое прогрессии. А далее дело техники... For j = 0 To rs.RecordCount - 1 Set db = DAO.OpenDatabase(frmMain.dbname) sSQL = "SELECT * FROM Orders WHERE ID=" & List1.List(j) & ";" Set rs = db.OpenRecordset(sSQL) rs.Edit rs.Fields(0) = List2.List(j) rs.Update Next j rs.Close db.Close Set rs = Nothing Set db = Nothing ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2004, 16:40 |
|
||
|
Как выбрать (без критериев) из 100 записей только несколько
|
|||
|---|---|---|---|
|
#18+
ежикID есть, но проблема в том, что когда я отобрала эти вопросы по другим критерием (тема теста,сложность), то у них теперь ID идут не безпрерывно, например выпали вопросы с ID 3, 4, 8, 10, 30, 34, 40, 58 Отобрали вы это запросом, если я правильно понял. Вот и используйте этот запрос как подзапрос, а выбираете оттуда, но только ID. Его результатом будет множество ID отобранных по вашим критериям. Условие order by rnd(table.id) перемешает эти ID, А Select Top 5 Вернет 5 из вашего множества ID. Запускать... это просто SQL запрос, как вашей душе угодно... хоть в VB (что в вашем случае если я правильно понимаю - вариант наиболее подходящий, хоть просто сохраните как запрос) Если я слишком замороченно объяснил, киньте свой запрос, я на нем напишу выбор случайных 5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2004, 16:45 |
|
||
|
Как выбрать (без критериев) из 100 записей только несколько
|
|||
|---|---|---|---|
|
#18+
marvelА зачем программировать в Access. Есть база подключись средствами Delphi, VB. А там уже можно делать что хочешь. А зачем не программировать в Access??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2004, 16:50 |
|
||
|
Как выбрать (без критериев) из 100 записей только несколько
|
|||
|---|---|---|---|
|
#18+
>А если уж говорить о генераторе случайных чисел то как избежать дублежа впросов? После того как вопрос выбран, он исключается из списка предлагаемях вопросов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2004, 16:53 |
|
||
|
Как выбрать (без критериев) из 100 записей только несколько
|
|||
|---|---|---|---|
|
#18+
Кажется, в ответе schakh'а опечатка. Исправляю ее. select top 5 table 1 .chtoNado from table1 where table 1 .id in(Podzapros.ID) order by rnd(table 1 .id) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2004, 16:55 |
|
||
|
Как выбрать (без критериев) из 100 записей только несколько
|
|||
|---|---|---|---|
|
#18+
Он вернет столько сколько надо и все разные. В частном случае дубликатов не будет!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2004, 16:55 |
|
||
|
Как выбрать (без критериев) из 100 записей только несколько
|
|||
|---|---|---|---|
|
#18+
2 Владимир Саныч согласен :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2004, 16:56 |
|
||
|
Как выбрать (без критериев) из 100 записей только несколько
|
|||
|---|---|---|---|
|
#18+
так значит, я набила это селект при составлении Запроса через VIEW SQL, он мне при запуске вроде все правильно отбирает (5 РАЗНЫХ вопросов), теперь вопрос такой (прямо неудобно за тупость свою) как теперь вместо цифры 5 подставить то выражение, которое меня приводи к полю в форме, в котором пользователь набил количество нужных ему вопросов. Если я помещаю строку forms!name frorm!name field прямо в SQL он ругается, а когда сам запрос открываю, там уже этот параметр TOP не отображается. Куда это вставлять то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2004, 17:02 |
|
||
|
Как выбрать (без критериев) из 100 записей только несколько
|
|||
|---|---|---|---|
|
#18+
ежикЕсли я помещаю строку forms!name frorm!name field прямо в SQL он ругается А где вы это делаете, в коде? Можно глянуть как? А то мне что-то страшновато становится ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2004, 17:08 |
|
||
|
Как выбрать (без критериев) из 100 записей только несколько
|
|||
|---|---|---|---|
|
#18+
Он там отображается (в окошке свойств), но это не поможет. Надо составлять этот селект динамически: dim s as string s = "select top " & cstr(forms!name frorm!name field) & " table1.chtoNado from table1 where table1.id in(Podzapros.ID) order by rnd(table1.id)" А потом занести полученное s, например, в recordsource формы, которая будет эти вопросы показывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2004, 17:08 |
|
||
|
Как выбрать (без критериев) из 100 записей только несколько
|
|||
|---|---|---|---|
|
#18+
автор А где вы это делаете, в коде? Можно глянуть как? А то мне что-то страшновато становится ;) не смейтесь над убогими, грех :)сама понимаю, что туплю, но я не работалаю раньше с SQL в ACCESS но SQL теоритически знаю (поэтому ваш селект и с опечаткой сразу поняла) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2004, 17:14 |
|
||
|
Как выбрать (без критериев) из 100 записей только несколько
|
|||
|---|---|---|---|
|
#18+
Да я не смеюсь, это я так пошутил, надеюсь безобидно... :) Если нет, мои извинения! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2004, 17:19 |
|
||
|
Как выбрать (без критериев) из 100 записей только несколько
|
|||
|---|---|---|---|
|
#18+
я просто быстро учебник пролистала и нашла, что при создание Запроса можно его в виде SQL создавать в спец.окне, я так и сделала, когда сработала, хотел снаскоку еще и поле формы туда впихнуть, но не получилось :) значит я правильно поняла тебя Владимир Саныч (кстати землякам привет!) что это только в коде можно делать? Просто мы когда получили это задание получили и указание, что все мы должны делать инструментами ACCESS практически к коду не прибегая, только если уж совсем ни как без него. Сейчас я попробую всю инфу переварить и попробывать как и что. Всем большое спасибо, поглядывайте в мой топик, я навернякак еще вернусь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2004, 17:24 |
|
||
|
Как выбрать (без критериев) из 100 записей только несколько
|
|||
|---|---|---|---|
|
#18+
От земляков привет встречный. У меня такое чувство, что переменное значение TOP можно сделать только через код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2004, 17:29 |
|
||
|
Как выбрать (без критериев) из 100 записей только несколько
|
|||
|---|---|---|---|
|
#18+
schakh авторЕсли нет, мои извинения! что ты какие обиды, там же смайлик был :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2004, 18:16 |
|
||
|
Как выбрать (без критериев) из 100 записей только несколько
|
|||
|---|---|---|---|
|
#18+
я сделала так это пока пробный вариант без допольнительных запросов : Private Sub Form_Load() Dim s As String s = "SELECT TOP " & Forms!f_make_test!number & " tb_questions.number FROM tb_questions WHERE tb_questions.subject = 1 ORDER BY rnd(tb_questions.number)" Form.RecordSource = s End Sub правильно? а теперь мне совсем не понятно, а как я вообще в полях этой формы всю инфу отражаю? Раньше я эту форму строила на Запросе у которого были названия полей и я все текстовые поля формы к ним привязывала. А теперь как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2004, 18:22 |
|
||
|
Как выбрать (без критериев) из 100 записей только несколько
|
|||
|---|---|---|---|
|
#18+
Во-первых, Me.RecordSource = s Во-вторых, для удобства работы с формой в конструкторе можно забить в RecordSource что-нибудь примерно похожее на правду, например тот же селект с TOP 1 или вообще без TOP. Все равно при исполнении программы оно подменится на то, что надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2004, 18:27 |
|
||
|
Как выбрать (без критериев) из 100 записей только несколько
|
|||
|---|---|---|---|
|
#18+
все равно не понятно, вот есть у меня в форме текстовое поле "question" куда я помещаю сам вопрос или поле "subject" и что я должна написать в их Control Source? Или тоже как-то в коде делается? понятно что в запросе я должна написать SELECT top ...... table.question, table.subject ..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2004, 18:40 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32549659&tid=1673871]: |
0ms |
get settings: |
11ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
147ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
86ms |
get tp. blocked users: |
2ms |
| others: | 223ms |
| total: | 499ms |

| 0 / 0 |
