Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 26.10.2017
Сообщений: 108
1
.NET 4.x

Копирование таблицы в базе Access с изменением имени

15.08.2018, 23:20. Показов 1416. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, уважаемые форумчане!
Очень наболел вопрос: Как при создании копии таблицы в базе Access сделать так, чтобы оно бралось хотя бы из TextBox?
Хотя в идеале мне нужно, чтобы имя бралось из ini файла
[DATE]
Now=07.08.2018

Если делать копию и задавать имя постоянным:
VB.NET
1
SqlCom = New OleDb.OleDbCommand("SELECT * INTO Proj_copy FROM Proj", Con) 'Рабочий код
то проблем нет.

Но надо, чтобы вместо Proj_copy имя бралось из ini-файла, или на худой конец из TextBox (в TextBox запихнуть значение 07.08.2018 гораздо легче).
Пытался делать так:
VB.NET
1
SqlCom = New OleDb.OleDbCommand("SELECT * INTO '" & DateTimePicker1.Value.ToString("ddMMyyyy") & "' FROM Proj", Con)
Брал значение напрямую с DateTimePicker.
и так:
VB.NET
1
SqlCom = New OleDb.OleDbCommand("SELECT * INTO '" & DateTimePicker1.Value & "' FROM Proj", Con)
и так:
VB.NET
1
Dim SqlCom As New OleDb.OleDbCommand("SELECT * INTO '" & TextBoxMon.Text & "'  FROM Proj", Con)
во всех случаях выдает ошибки.

А если считывать с ini-файла
VB.NET
1
d = GetPrivateProfileString("DATE", "Now", "", rc, 255, "" & My.Application.Info.DirectoryPath & "\Topoved.ini")
то если в имя подставляем d - также выдает "System.Data.OleDb.OleDbException: "Синтаксическая ошибка в запросе. Неполное предложение запроса.". При подстановке rc (данных из буфера) - тоже ошибка.

Вопрос: подскажите в каком направлении копать? Как задать имя скопированной таблицы из DateTimePicker, TextBox и ini-файла?

P.S. До этого писал на VBA, теперь хочу свою программу сделать "отдельной", буду рад любой помощи.
Миниатюры
Копирование таблицы в базе Access с изменением имени  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.08.2018, 23:20
Ответы с готовыми решениями:

Изменением пути к базе Access (OleDbConnection)
Есть папка, например Application_DB. В ней содержится ещё две папки, одна - с приложением WinForms,...

Копирование строки из одной таблицы в другую с изменением значений двух столбцов
Объясню суть проблемы. Не хватает мозгов реализовать задуманное в программном коде, а тему диплома...

Программное копирование структуры таблицы в Access
Есть ли какая-нибудь sql-инструкция для копирования структуры имеющейся таблицы в Access?...

Копирование таблицы из одной БД в другую БД СУБД access
Подскажите пожалуйста как можно по нажатию на кнопку скопировать таблицу из одной БД в другую БД

4
4652 / 3609 / 854
Регистрация: 02.02.2013
Сообщений: 3,488
Записей в блоге: 2
16.08.2018, 13:30 2
Попробуйте так
VB.NET
1
2
3
Dim dat As Date = Now
Dim str As String = dat.ToShortDateString.Replace(".", "_")
Dim SqlCom As New OleDb.OleDbCommand("SELECT * INTO " & str & " FROM Proj", con)
0
Администратор
Эксперт .NET
17559 / 13781 / 5299
Регистрация: 17.03.2014
Сообщений: 28,259
Записей в блоге: 1
16.08.2018, 13:31 3
zhigalkin_p, попробуй заключить имя таблицы в квадратные скобки
VB.NET
1
SqlCom = New OleDb.OleDbCommand("SELECT * INTO [" & DateTimePicker1.Value.ToString("ddMMyyyy") & "] FROM Proj", Con)
0
4652 / 3609 / 854
Регистрация: 02.02.2013
Сообщений: 3,488
Записей в блоге: 2
16.08.2018, 13:49 4
Если таблиц предполагается много то, на мой взгляд, имена удобнее формировать так
VB.NET
1
Dim str As String = dat.Year & "_" & dat.Month & "_" & dat.Day
Это позволит быстрее ориентироваться в таблицах (при сортировке все таблицы с одним годом (месяцем) будут в одном месте).
1
1 / 1 / 0
Регистрация: 26.10.2017
Сообщений: 108
16.08.2018, 21:35  [ТС] 5
Спасибо всем кто ответил. Решил зайти с другой стороны, пришлось создавать таблицу "на лету". Вот рабочий код
VB.NET
1
2
3
4
5
6
7
8
9
Function CreateTable() 'Создаем новую таблицу
        Dim Con As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Pth & "\" & ComboBox1.Text & ".asm" & "\Maindb.tdb") ' Переменная для подключения базы (имена папок в директории) с именем из ComboBox1 с фильтром .asm
        'Dim SqlCom As New OleDb.OleDbCommand("CREATE TABLE " & TextBoxSeason.Text & " (Date Date, Profil Integer, PK_from Integer, PK_to Integer, Shirina Integer, Dlina Integer, Vizirka Text)", Con)  'Рабочий код
        Dim SqlCom As New OleDb.OleDbCommand("CREATE TABLE " & DateTimePicker1.Value.ToString("yyyyMMdd") & " (Id Counter, Dat Date, Profil Integer, PK_from Integer, PK_to Integer, Shirina Integer, Dlina Integer, Vizirka Text)", Con)  'Рабочий код
        On Error Resume Next 'Если ошибка идем мимо
        Con.Open()
        SqlCom.ExecuteNonQuery()
        Con.Close()
    End Function
Где
VB.NET
1
& Pth &
путь к папке, где лежит exe-шник.
0
16.08.2018, 21:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.08.2018, 21:35
Помогаю со студенческими работами здесь

Напишите SQL код, который покажет все таблицы в базе данных, содержащие в имени слово consultant
Есть задание: Напишите sql код, который покажет все таблицы в базе данных, содержащие в имени...

Access 2007 видеотека: Копирование определенных ячеек таблицы в другую
Здравствуйте! Есть БД на Access 2007, там есть форма клиенты. В этой форме есть объект Список7...

сколько таблицы может быт сохранена в одном access базе?
сколько таблицы мы можем создать в одном access базе?

Обновление подчинённой таблицы при поиске в базе (Access-2007)
Уважаемые знатоки. Осмелюсь сказать " будушие коллеги". Решил упростить работу и перенести...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru