Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 15.11.2010
Сообщений: 10

Импорт/экспорт выбранных записей из/в файл

15.02.2011, 07:20. Показов 2378. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пожалуйста помогите!
Очень нужно сделать в БД две кнопки одна импорт выделенных записей, другая экспорт.
Хотелось бы, чтобы при нажатии на экспорт сохранялся файл с текущей датой, в котором были бы выбанные записи с их связными таблицами.
А при нажатии на импорт соответственно загрузка записей из выбранного файла.

Это нужно для того, чтобы из одного учреждения можно было пересылать нужные записи в другое учреждение, в котором работают с такой же базой данных.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.02.2011, 07:20
Ответы с готовыми решениями:

Экспорт нескольких записей таблицы в один файл Word
Нашел на форуме замечательный скрипт, который сбрасывает отобранные значения в файл Word, в котором он сначала создает таблицу, а потом...

Экспорт/импорт ЧАСТИ записей из таблицы
Мне нужно проэкспортировать часть записей из таблицы одной базы данных и проимпортировать их (добавить) в таблицу такой же структуры другой...

DataGridView - экспорт и импорт в файл
Привет! Есть таблица (DataGridView 1) на форме. В ней содержаться данные. По нажатию на одну кнопку необходимо что бы данные...

6
 Аватар для Anatolij13
90 / 69 / 1
Регистрация: 18.11.2010
Сообщений: 176
15.02.2011, 09:31
Crow85, доброго времени суток!
Возможно стоит посмотреть вариант создания репликаций БД.
Мне ещё не доводилось такого делать, поэтому попробуй сам "погуглить" в этом направлении.
0
0 / 0 / 0
Регистрация: 15.11.2010
Сообщений: 10
16.02.2011, 05:51  [ТС]
Репликации надо ещё узнать что такое и научиться . Гуглить, гуглил... только что-то ничего не нагуглил, так разные базы смотрю, может кто делал такое дело в access'е. Тут ещё вопрос в том, как список такой сделать, чтобы был чекбокс в котором ставишь галочку напротив той записи которую нужно в файл сохранить, потом нажимаешь кнопку сохранить и она в файлике уже лежит. У меня есть база данных созданная в Visual Studio, только вот исходников нет... там такакая штука полезная есть... но кроме неё нифига больше полезного, база эта ещё не обросла разными отчётами и прочими делами. Поэтому мне надо делать свою...
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
16.02.2011, 08:51
Цитата Сообщение от Crow85 Посмотреть сообщение
Гуглить, гуглил... только что-то ничего не нагуглил
да ты Яндекси, Яндекси.
кто вам, балбесам, сказал, что гугль - лучше???? уже два года поражаюсь...
вторая строка в ответе на запрос "Access репликация": Глава 18. Репликация баз данных. | Учебник по Access 2002
1
 Аватар для Anatolij13
90 / 69 / 1
Регистрация: 18.11.2010
Сообщений: 176
16.02.2011, 11:11
Patch, да как-то фраза "яндекси, яндекси..." не очень как-то звучит... а вот "гуглить" вроде все понимают, и звучит членораздельно

p.s. сам только Яндексом и пользуюсь...
0
0 / 0 / 0
Регистрация: 15.11.2010
Сообщений: 10
17.02.2011, 05:46  [ТС]
Спасибо, пойду гуглояндексить по поводу кода для частичной реплики.
0
 Аватар для Aeliot
177 / 62 / 3
Регистрация: 17.11.2011
Сообщений: 318
01.01.2012, 16:09
--> Crow85

С экспортом поступаешь так:
1) Формируешь запрос, который бы выдавал нужные записи
2) Делаешь на форме кнопку приблизительно с таким кодом (
Кнопка
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
Private Sub cmdExportItms_Click()
    If vbYes = MsgBox("Экспортировать список заказа в файл обмена?" _
                    , vbQuestion + vbYesNo + vbDefaultButton1 _
                    , "Экспорт данных") Then
        Dim strFBody As String
        Dim strSQL As String
        
        ' выгружаем весь заказ в одну текстовую переменную (запрос: "rcvOrdItmAmountExport")
        strSQL = "SELECT tblPrice.PrcCode, tblOrderItems.OrdItmAmount FROM tblPrice INNER JOIN tblOrderItems ON tblPrice.PrcId = tblOrderItems.OrdItmItem WHERE (((tblOrderItems.OrdItmOrder)=" & txbOrdId.value & "));"
        strFBody = queryGetString(strSQL, Chr(13), , Chr(9))
        If strFBody <> "" Then
            Dim lngFn As Long           ' свободный номер в системе
            Dim strFName As String      ' имя файла-задания
            Dim strPath As String       ' расположение файла-задания
            ' формируем путь сохранения файла-задания
            strPath = CurrentProject.Path & "\.DataExchange\"
            ' проверяем: существует ли указанная директория. Если "нет", то создаём
            If Dir(strPath, vbDirectory) = "" Then MkDir strPath
            ' формируем имя сохраняемого файла-задания
            strFName = Format(Now(), "yyyy.mm.dd") _
                        & "_" & Replace(cboOrdWho.Column(1), " ", "_") _
                        & "_" & CStr(txbOrdId.value) & ".txt"
            ' сохраняем задание в файл
            lngFn = FreeFile    ' получаем свободный номер в системе
            Open strPath & strFName For Output As #lngFn
                Print #lngFn, strFBody  ' выводим заказ в файл
            Close #lngFn
            MsgBox "Завершён зкспорт списока заказа в файл обмена." _
                    , vbQuestion + vbYesNo + vbDefaultButton1 _
                    , "Экспорт данных"
        Else
            MsgBox "Нет данных для сохранения по выбранному заказу" _
                & " промежуточный Файл данных не будет создан." _
                , vbExclamation _
                , "Сохранение заказа."
        End If
    End If
End Sub
), где в переменную strSQL передаёшь текст SQL-запроса, сформированного на первом этапе.
Ещё тебе понадобится вот это:
Функция, которая представляет результаты запроса в виде одной текстовой переменной.
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
Public Function queryGetString( _
        ByRef strQuery As String, _
        ByRef strRowDelimeter As String, _
        Optional ByRef blnAddQuotes As Boolean = False, _
        Optional ByRef strColDelimeter As String, _
        Optional ByRef blnOnErrGoNext As Boolean = False _
        ) As Variant
    If blnOnErrGoNext Then On Error Resume Next
    Dim varOut As Variant
    '* early binding requires a reference to Microsoft ActiveX Data Objects Library *'
    'Dim rs As ADODB.Recordset
    'Set rs = New ADODB.Recordset '
    
    '* use late binding; no referenced needed *'
    Dim rs As Object
    Set rs = CreateObject("ADODB.Recordset")
    
    'Debug.Print strQuery
    rs.Open strQuery, CurrentProject.Connection
    If rs.BOF = False Or rs.EOF = False Then
        If strColDelimeter = "" Then strColDelimeter = Chr(9)
        If blnAddQuotes Then
            varOut = rs.GetString(2, , strColDelimeter, strRowDelimeter)   '2 = adClipString '
            '* strip off last quote *'
            If Len(varOut & vbNullString) > 0 Then
                varOut = Left(varOut, Len(varOut) - 2)
            End If
        Else
            varOut = rs.GetString(2, , strColDelimeter, strRowDelimeter)  '2 = adClipString '
        End If
    End If
    rs.Close
    Set rs = Nothing
    queryGetString = varOut
End Function

Не по теме:

Код функции, заколачивающей результат запроса в одну текстовую переменную, не мой. Когда-то нашёл в нете. Кажись в англиком.


На импорт использую такую функцию:
Функция импорта
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
69
70
71
72
73
74
75
Private Sub ImportZakazF( _
        ByRef strFilePathName As String, _
        ByRef lngOrdId As Long _
        )   ' вносим полученные заказы из файла
    ' strFilePathName - адрес текстового файла, из которго будете импортировать
    ' lngOrdId - ИД заказа
    Dim dblPrcPrice As Double       ' цена позиции по прайсу
    Dim dbsCurrentDb As Database
    Dim lngAmmount As Long          ' количество
    Dim lngFn As Long               ' свободный номер файла в системе
    Dim lngPrcId As Long            ' код позиции в прайсе
    Dim strBookId As String         ' заказанная позиция
    Dim rsOrderItems As Recordset   ' список позиций в заказе
    Dim rsPrice As Recordset        ' прайс
    Dim strDoNotFined As String     ' список не найденных позиций
    Dim strFPN As String            ' ссылка на анализируемый файл-заказ
    Dim strFFCriteria As String     ' условия поиска записи в таблице
    Dim strSpliter As String        ' разделитель строки в файле-заказе
    Dim strVars() As String         ' массив переменных, полученный из строки файла-заказа
    Dim strZ As String              ' строка, полученноя из файла-заказа
    
    If strFilePathName = "" Then Exit Sub
    lngAmmount = CLng(0)
    strBookId = ""
    strDoNotFined = ""
    strFPN = strFilePathName
    Set dbsCurrentDb = CurrentDb
    With dbsCurrentDb
        ' получаем данные таблицы заказа
        Set rsOrderItems = .OpenRecordset("SELECT tblOrderItems.* FROM tblOrderItems;")
        ' получаем данные прайса
        Set rsPrice = .OpenRecordset("SELECT tblPrice.PrcId, tblPrice.PrcPrice, tblPrice.PrcCode FROM tblPrice;")
    End With
    lngFn = FreeFile
    Open strFPN For Input As #lngFn   ' открываем файл для чтения построчно
    While Not EOF(lngFn)                ' цикл "пока не найдено окончание файла"
        Line Input #lngFn, strZ         ' получили строку по порядку целиком для работы
        If strZ <> "" Then
            If InStr(1, strZ, Chr(9)) > 0 Then strSpliter = Chr(9) Else strSpliter = ";"
            strVars = Split(strZ, strSpliter)   ' получили из строки набор переменных
            strBookId = strVars(0)
            lngAmmount = CInt(strVars(1))
            With rsPrice
                .MoveFirst
                ' формируем критерий поиска записи в таблице
                strFFCriteria = "([PrcCode])=" & Chr(34) & strBookId & Chr(34)
                rsPrice.FindFirst (strFFCriteria)
                lngPrcId = !PrcId
                If Not IsNull(lngPrcId) Then dblPrcPrice = !PrcPrice
            End With
            If Not IsNull(lngPrcId) Then
                With rsOrderItems
                    .AddNew
                    !OrdItmOrder = lngOrdId
                    !OrdItmItem = lngPrcId
                    !OrdItmPrice = dblPrcPrice
                    !OrdItmAmount = lngAmmount
                    !OrdItmDateIn = Now()
                    !OrdItmDateChange = Now()
                    .Update
                End With
            Else
                strDoNotFined = strDoNotFined & strBookId & ", "
            End If
        End If
    Wend
    Close #lngFn
    Set rsOrderItems = Nothing
    Set rsPrice = Nothing
    If strDoNotFined <> "" Then
        MsgBox "Не найдены в базе и не внесены в заказ следующие позиции: " & strDoNotFined _
                , vbCritical _
                , "Импорт данных из файла"
    End If
End Sub


Уточнения по импорту:
1) В файле, из которого производится импорт, данные должны быть разделены табулятором (tab) или знаком (;). Соответственно их нельзя использовать в передаваемых данных.
2) В данном случае данные импортируются в одну таблицу, но поколдовав, сможете подпилить под свои задачи.

Добавлено через 6 минут
Функции представлены в виде "как есть".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.01.2012, 16:09
Помогаю со студенческими работами здесь

импорт из файла/экспорт в файл
Необходим импорт строки из файла( выбираешь у себя на компьютере ) для дальнейшего её использования в PHP ( файл больше не нужен ) , а так...

Экспорт/Импорт данных из dataGridView в файл
Доброго дня/ночи! Прошу помочь с сохранением/загрузкой данных из dataGridView. По куче примеров и решений состряпал &quot;нечто&quot;....

Импорт выбранных колонок в Excel
Есть класс, который Импортирует то, что показано на DatagridView в Excel. Никак не могу додуматься как реализовать, импорт выбранных...

Excel и группы записей. Импорт записей, согласно категории(которая указана в экселе)
Задаю вопрос, т.к. не нашёл ни в яндексе, ни тут ответ. Просьба ткнуть носом, т.к. считаю что вопрос на уровне новичка и тема должна была...

Импорт записей из excel в SQL и ошибка "Выбранный XML файл некорректен, либо неполон"
Здравствуйте. Нужно таблицу excel перевести в базу данных excel Как это можно сделать? Пробовал через &quot;Импорт&quot; в...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru