Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: 1.000.000 записей в Access 2003
 
 автор: likvidator   (06.04.2007 в 10:08)   личное сообщение
 
 

Как создать 1.000.000 записей программно?
Если можно в каждой записи записывает строку рандомом.

  Ответить  
 
 автор: ГлазастыйМышь   (06.04.2007 в 10:53)   личное сообщение
 
 

к примеру так, если добавить в одно поле значением от 1 до 1000

for k=1 to 1000000
      currentDb.Execute "INSERT INTO [твоя таблица]( [твое поле] ) SELECT " & Int((1000 * Rnd) + 1)
next k

если полей несколько, то расширить см синтаксис INSERT INTO

  Ответить  
 
 автор: likvidator   (06.04.2007 в 12:38)   личное сообщение
 
 

Спасибо.
А если строки текстовые и чтобы не повторялись?

  Ответить  
 
 автор: osmor   (06.04.2007 в 12:52)   личное сообщение
 
 

к слову....
на моей машине 10 000 записей таким образом создавались 26 сек
значит
1 000 000 записей - 46 минут

  Ответить  
 
 автор: ДрЮня   (06.04.2007 в 14:14)   личное сообщение
 
 

это с проверкой на уникальность?

  Ответить  
 
 автор: osmor   (06.04.2007 в 14:26)   личное сообщение
 
 

не-е-е-е просто путо запустил функцию приведенную мышем

  Ответить  
 
 автор: ГлазастыйМышь   (06.04.2007 в 15:05)   личное сообщение
 
 


for k=1 to 1000000 
      currentDb.Execute "INSERT INTO [твоя таблица]( [твое поле] ) SELECT " & 
CHR(Int((25 * Rnd) + 65)) & CHR(Int((25 * Rnd) + 65)) & CHR(Int((25 * Rnd) + 65)) & CHR(Int((25 * Rnd) + 65)) & CHR(Int((25 * Rnd) + 65)) & CHR(Int((25 * Rnd) + 65)) 
next k 

будет записано 6 буквенное слово из случайных букв английского алфавита. 26 в 6 степени дает 308915776 вариантов, по идее перекрывают 1000000, но возможны и частные совпадения.

  Ответить  
 
 автор: Explorer   (06.04.2007 в 15:06)   личное сообщение
 
 

у тебя что - работа кончилась?

  Ответить  
 
 автор: KrukVN   (06.04.2007 в 21:02)   личное сообщение
10 Кб.
 
 

По быструхе можно так:

Sub milenium()
Dim i As Byte

CurrentDb.Execute "delete from tab_test"

For i = 0 To 9
    CurrentDb.Execute "INSERT INTO tab_test ( test ) VALUES ( " & i & " )"
Next i

CurrentDb.Execute "INSERT INTO tab_test ( test ) SELECT tab_test.test FROM tab_test, tab_test AS tab_test_1, tab_test AS tab_test_2, tab_test AS tab_test_3, tab_test AS tab_test_4, tab_test AS tab_test_5"

End Sub

запишет чуть более миллиона записей (причем достаточно быстро: на моем домашнем пне 3 (733 MHz) + 256 оперативки за 20 секкунд)
Вы что хотите чей-нить сервак за ..ца подвесить?

В прикрепленном примере с применением Rnd
но пишет уже чуть дольше - что-то около минуты (не засекал). Правда без уникальности (см. Запрос1), но это уже повозиться нужно.
Ну а цикл на VB, к сожалению, не самый быстрый самолет

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList