Загрузка данных


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