Sub FillTableRandom()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim i As Integer
Dim arrF() As Variant, arrI() As Variant, arrH() As Variant
Dim rndPhone As String
Set db = CurrentDb()
' Пытаемся открыть таблицу (проверяем оба названия на всякий случай)
On Error Resume Next
Set rs = db.OpenRecordset("MyTable", dbOpenDynaset)
If rs Is Nothing Then
Set rs = db.OpenRecordset("Друзья", dbOpenDynaset)
End If
On Error GoTo 0
If rs Is Nothing Then
MsgBox "Таблица не найдена! Создай ее сначала."
Exit Sub
End If
' Списки русских слов для рандома
arrF = Array("Иванов", "Петров", "Сидоров", "Смирнов", "Кузнецов", "Попов", "Соколов", "Лебедев", "Козлов", "Новиков")
arrI = Array("Алексей", "Дмитрий", "Иван", "Сергей", "Андрей", "Александр", "Максим", "Михаил", "Роман", "Евгений")
arrH = Array("Рыбалка", "Геймдев", "Программирование", "VR игры", "Чтение", "Спорт", "Фотография", "Музыка", "Авто", "Оружие")
Randomize
For i = 1 To 10
rs.AddNew
' Заполняем по номерам столбцов (0 это счетчик №, 1 - Фамилия и т.д.)
rs.Fields(1).Value = arrF(Int((10 * Rnd)))
rs.Fields(2).Value = arrI(Int((10 * Rnd)))
rs.Fields(3).Value = "ул. Строителей, д. " & CStr(Int(1 + Rnd * 100))
rs.Fields(4).Value = CLng(100000 + Int(Rnd * 899999))
' Генерим телефон под твою маску 16 символов
rndPhone = "+7" & CStr(Int(900 + Rnd * 100)) & CStr(Int(100 + Rnd * 900)) & CStr(Int(10 + Rnd * 90)) & CStr(Int(10 + Rnd * 90))
rs.Fields(5).Value = rndPhone
rs.Fields(6).Value = arrH(Int((10 * Rnd)))
rs.Fields(7).Value = "user" & CStr(i) & "@example.com"
rs.Update
Next i
rs.Close
Set rs = Nothing
Set db = Nothing
MsgBox "Готово! 10 рандомных человек успешно закинуты в таблицу.", vbInformation
End Sub