Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2013, 16:44   #1
inv.DS
Новичок
Джуниор
 
Регистрация: 26.01.2013
Сообщений: 1
Восклицание Импорт данных из Excel в Access с учетом запроса

Добрый день! Госопода помогите с вопросом, есть код:

Код:
Dim excel_app As Object
Dim excel_sheet As Object
Dim max_row As Integer
Dim max_col As Integer
Dim row As Integer
Dim col As Integer
Dim conn As ADODB.Connection
Dim statement As String
Dim new_value As String
Dim file_path As String

'On Error GoTo Er:

    DoEvents
    Set excel_app = CreateObject("Excel.Application")
    
   'excel_app.Visible = True

    ' Open the Excel spreadsheet.
    excel_app.Workbooks.Open FileName:=txtExcelFile.Text
    ' Check for later versions.
    If Val(excel_app.Application.Version) >= 8 Then
        Set excel_sheet = excel_app.Sheets("Loans")
    Else
        Set excel_sheet = excel_app
    End If

    ' Get the last used row and column.
    max_row = excel_sheet.UsedRange.Rows.Count
    max_col = excel_sheet.UsedRange.Columns.Count

    ' Open the Access database.
    Set conn = New ADODB.Connection
    conn.ConnectionString = _
        "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & txtAccessFile.Text & ";" & _
        "Persist Security Info=False"
    conn.Open

    For row = 2 To max_row
        ' Compose an INSERT statement.
        statement = "INSERT INTO Loans VALUES ("
        For col = 1 To max_col
            If col > 1 Then statement = statement & ","
            new_value = Trim$(excel_sheet.Cells(row, col).Value)
            If IsNumeric(new_value) Then
                statement = statement & _
                    new_value
            Else
                statement = statement & _
                    "'" & _
                    new_value & _
                    "'"
            End If
        Next col
        statement = statement & ")"

        ' Execute the INSERT statement.
        conn.Execute statement, , adCmdText
    Next row

    ' Close the database.
    conn.Close
    Set conn = Nothing


    ' Close the workbook saving changes.
    excel_app.ActiveWorkbook.Close True
    excel_app.Quit

    Set excel_sheet = Nothing
    Set excel_app = Nothing

    'Screen.MousePointer = vbDefault
    MsgBox "Copied " & Format$(max_row - 1) & " values."
'Exit Sub
'Er: MsgBox Err.Description, vbCritical
Ситуация следующая, выбираем базу данных и следом лист из которого происходит импорт данных в базу данных. Вопрос, в листе есть поле "Дата" к примеру содержит 13.02.2013 как сделать так, чтобы при импорте в базу данных, записи которые уже есть в базе данных от такого числа не добавлялись, а добавлялись всегда разной даты, то есть на дату вперед к примеру. Подскажите пожалуйста!
inv.DS вне форума Ответить с цитированием
Старый 26.01.2013, 18:03   #2
Diskretor
 
Регистрация: 31.01.2012
Сообщений: 7
По умолчанию

Код:
If Date <= CDate(excel_sheet.Cells(row, 4)) Then conn.Execute statement, , adCmdText
Diskretor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импорт данных из Excel в Access alexvav БД в Delphi 2 22.06.2012 16:17
Импорт данных из excel в access с регистрацией файлов Anastasia666 Microsoft Office Access 7 24.04.2012 14:14
импорт данных из Excel в Access mr.kot Microsoft Office Access 3 13.11.2011 22:55
Импорт-экспорт данных Excel-Access, и из Access-Excel Людвиг Microsoft Office Access 3 27.10.2011 14:38
импорт данных из access в excel. romale_80 Microsoft Office Access 8 25.03.2010 01:26