Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 10.04.2015
Сообщений: 9
1

Проверка уникальности значений в таблице перед ставкой данных из Excel

15.02.2016, 11:59. Показов 838. Ответов 2
Метки нет (Все метки)

Необходимо перед ставкой значений в таблицу MS Access проверить наличие строк по значению из файла Excel.
Перед выполнением строки 24 выполнить проверку:
1. Получить значение ячейки из файла MS Excel - Лист "Общие_данные", ячейка B13
2. В таблице "rekvizity" по полю "full_num_predp" произвести поиск значений на равенство значению ячейки B13.
3. Если такая запись с этим значением отсутствует в таблице то выполнить процедуру со строки 24 до 61, если запись удовлетворяющая условию есть в таблице перейти сразу к строке 26 (к следующему файлу).

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
Sub ImportExcel3()
Dim strExcelPath As String, strTableName As String, strRangeName As String, strFile As String, IMPORT_FOLDER As String, n As Integer, strPathFile As String
Dim IMPORT_FOLDER_DONE As String, strExcelPathDone As String, strPathFileDone As String, strFileNew As String
IMPORT_FOLDER = "import"
IMPORT_FOLDER_DONE = "import\импоритрованные"
    If Dir(CurrentProject.Path & "" & IMPORT_FOLDER, vbDirectory) = "" Then
    MkDir CurrentProject.Path & "" & IMPORT_FOLDER
    End If
    
        If Dir(CurrentProject.Path & "" & IMPORT_FOLDER_DONE, vbDirectory) = "" Then
    MkDir CurrentProject.Path & "" & IMPORT_FOLDER_DONE
    End If
strExcelPath = CurrentProject.Path & "" & IMPORT_FOLDER
strExcelPathDone = CurrentProject.Path & "" & IMPORT_FOLDER_DONE
 
strFile = Dir(strExcelPath & "*.xlsm")
n = 0
 
If strFile = Empty Then
    MsgBox "В папке:" & vbCr & strExcelPath & vbCr & "нет файлов для импорта"
    Else: Do While Len(strFile) > 0
    
                          
                strPathFile = strExcelPath & strFile
                strFileNew = "!Импоритрован_" & strFile
                strPathFileDone = strExcelPathDone & strFileNew
                strTableName = "rekvizity"
                strRangeName = "rekvizity"
 
                Call DoCmd.TransferSpreadsheet(acImport, _
                acSpreadsheetTypeExcel12, strTableName, strPathFile, _
                True, strRangeName)
 
                strTableName = "obekty"
                strRangeName = "obekty"
                Call DoCmd.TransferSpreadsheet(acImport, _
                acSpreadsheetTypeExcel12, strTableName, strPathFile, _
                True, strRangeName)
                
                strTableName = "napravleniy"
                strRangeName = "napravleniy"
                Call DoCmd.TransferSpreadsheet(acImport, _
                acSpreadsheetTypeExcel12, strTableName, strPathFile, _
                True, strRangeName)
                
                strTableName = "meropriytiy"
                strRangeName = "meropriytiy"
                Call DoCmd.TransferSpreadsheet(acImport, _
                acSpreadsheetTypeExcel12, strTableName, strPathFile, _
                True, strRangeName)
                
                strTableName = "narusheniy"
                strRangeName = "narusheniy"
                Call DoCmd.TransferSpreadsheet(acImport, _
                acSpreadsheetTypeExcel12, strTableName, strPathFile, _
                True, strRangeName)
                
                Name strPathFile As strPathFileDone
                'Kill strPathFile
                strFile = Dir()
                
                n = n + 1
        
    Loop
    MsgBox "Импортирован(о) " & n & " файл(ов)"
    End If
        
End Sub
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.02.2016, 11:59
Ответы с готовыми решениями:

Проверка уникальности значений вводимых данных в DBEdit (Paradox)
Поле в которое вводится значение (порядковый номер) ключевое, т.е. если я введу номер (значение),...

Проверка значений в таблице перед записью
Подскажите пожалуйста как правильно написать процедуру проверки значений в таблице, нужно что если...

Проверка данных в форме перед созданием записи в таблице
Здрасте. Вот пришлось делать базу но так как я в этом ламер и самоучителя по Access 2003 в моё...

Проверка на уникальность перед занесением данных в базу с обращением к Access и Excel
Здравствуйте! В access и excel сравниваемые поля по типу совпадают, но как правильно обратиться к...

2
Эксперт MS Access
6793 / 4382 / 282
Регистрация: 12.08.2011
Сообщений: 12,963
15.02.2016, 12:56 2
Цитата Сообщение от vasiljevev Посмотреть сообщение
то выполнить процедуру со строки 24 до 61
в отдельную функцию.
0
0 / 0 / 0
Регистрация: 10.04.2015
Сообщений: 9
15.02.2016, 13:09  [ТС] 3
Цитата Сообщение от alvk Посмотреть сообщение
в отдельную функцию.
Буду очень благодарен за помощь.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.02.2016, 13:09

Поиск по уникальности и вывод всех данных в Excel
Такой вопрос. У меня есть база с данными которую я заполняю через датагрид построчно. Мне надо в...

Проверка на наличие поля в таблице перед добавлением
Здравствуйте, никак не могу осилить такой вопрос: Есть таблица, по заданию в ней нужно создать...

Проверка на наличие записи в таблице перед добавлением
Здравствуйте, уважаемые форумчане! Необходимо при нажатии на кнопку добавить запись в таблицу...

Контроль уникальности записей в таблице
Здравствуйте! Хочу поблагодарить многих форумчан на помощь, особенно тем, кто направил на путь...

Проверка данных перед добавлением в бд
Не могу найти информацию по этому поводу а вопросов много. Вопрос в проверке данных перед записью...

Сохранение истории изменения значений ячеек в таблице Excel
(Продолжение темы https://www.cyberforum.ru/ms-excel/thread372486.html) Здесь описывается...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru