#0
by Gepard
Как программно перебрать все таблицы и поля (можно только поля) БД Access? и как создать, изменить поле, таблицу?
#2
by Sonic
было на башорге - "я еще и преподаю, очень тяжело после баша, что поставить в домашнем задании, "2" или "ппц"" :) (не дословно но суть....)
#6
by Sonic
тут выбора нет, это ппц. родной. в КЗ или БЗ загляни для начала :) уже столько про это проходили
#7
by Sonic
Считается дурным тоном, если управляющий начнет выяснять, кто допустил брак. Главное (...)не в том, чтобы найти виновного, а в том чтобы выявить причины ошибки. (с) Акио Морита. основатель Сони
#9
by jbond
Sub TableDefX Dim dbsNorthwind As Database Dim tdfNew As TableDef Dim tdfLoop As TableDef Dim prpLoop As Property Set dbsNorthwind = OpenDatabase("Northwind.mdb") ' Create new TableDef object, append Field objects ' to its Fields collection, and append TableDef ' object to the TableDefs collection of the ' Database object. Set tdfNew = dbsNorthwind.CreateTableDef("NewTableDef") tdfNew.Fields.Append tdfNew.CreateField("Date", dbDate) dbsNorthwind.TableDefs.Append tdfNew With dbsNorthwind Debug.Print .TableDefs.Count & _ " TableDefs in " & .Name ' Enumerate TableDefs collection. For Each tdfLoop In .TableDefs Debug.Print " " & tdfLoop.Name Next tdfLoop With tdfNew Debug.Print "Properties of " & .Name ' Enumerate Properties collection of new ' TableDef object, only printing properties ' with non-empty values. For Each prpLoop In .Properties Debug.Print " " & prpLoop.Name & " - " & _ IIf(prpLoop = "", "[empty]", prpLoop) Next prpLoop End With ' Delete new TableDef since this is a ' demonstration. .TableDefs.Delete tdfNew.Name .Close End With End Sub
#10
by jbond
Sub CreateTableDefX Dim dbsNorthwind As Database Dim tdfNew As TableDef Dim prpLoop As Property Set dbsNorthwind = OpenDatabase("Northwind.mdb") ' Create a new TableDef object. Set tdfNew = dbsNorthwind.CreateTableDef("Contacts") With tdfNew ' Create fields and append them to the new TableDef ' object. This must be done before appending the ' TableDef object to the TableDefs collection of the ' Northwind database. .Fields.Append .CreateField("FirstName", dbText) .Fields.Append .CreateField("LastName", dbText) .Fields.Append .CreateField("Phone", dbText) .Fields.Append .CreateField("Notes", dbMemo) Debug.Print "Properties of new TableDef object " & _ "before appending to collection:" ' Enumerate Properties collection of new TableDef ' object. For Each prpLoop In .Properties On Error Resume Next If prpLoop <> "" Then Debug.Print " " & _ prpLoop.Name & " = " & prpLoop On Error GoTo 0 Next prpLoop ' Append the new TableDef object to the Northwind ' database. dbsNorthwind.TableDefs.Append tdfNew Debug.Print "Properties of new TableDef object " & _ "after appending to collection:" ' Enumerate Properties collection of new TableDef ' object. For Each prpLoop In .Properties On Error Resume Next If prpLoop <> "" Then Debug.Print " " & _ prpLoop.Name & " = " & prpLoop On Error GoTo 0 Next prpLoop End With ' Delete new TableDef object since this is a ' demonstration. dbsNorthwind.TableDefs.Delete "Contacts" dbsNorthwind.Close
#12
by Gepard
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using DAO; namespace MDB { public partial class Form1 : Form { public Form1 { InitializeComponent; } private void button1_Click(object sender, EventArgs e) { DAO.DBEngine myE = new DBEngine; if (!System.IO.File.Exists(@"c:123.mdb")) myE.CreateDatabase(@"c:123.mdb", ";LANGID=0x0409;CP=1252;COUNTRY=0", 32); DAO.Database мояБаза = myE.OpenDatabase(@"c:123.mdb", false, false, ";PWD=''"); DAO.Recordset myRec = мояБаза.ListTables; // Обход всех таблиц int Счетчик = 0; while (!myRec.EOF) { if (Счетчик == 0) ДобавитьСтроку(myRec.Fields[0].Name + ", " + myRec.Fields[1].Name + ", " + myRec.Fields[2].Name + ", " + myRec.Fields[3].Name + ", " + myRec.Fields[4].Name + ", " + myRec.Fields[5].Name); ДобавитьСтроку(myRec.Fields[0].Value.ToString + ", " + myRec.Fields[1].Value.ToString + ", " + myRec.Fields[2].Value.ToString + ", " + myRec.Fields[3].Value.ToString + ", " + myRec.Fields[4].Value.ToString + ", " + myRec.Fields[5].Value.ToString); myRec.MoveNext; Счетчик++; } myRec = мояБаза.ListFields("Люди"); // Обход всех полей, таблицы ЛЮДИ Счетчик = 0; while (!myRec.EOF) { if (Счетчик == 0) ДобавитьСтроку(myRec.Fields[0].Name + ", " + myRec.Fields[1].Name + ", " + myRec.Fields[2].Name + ", " + myRec.Fields[3].Name + ", " + myRec.Fields[4].Name + ", " + myRec.Fields[5].Name); ДобавитьСтроку(myRec.Fields[0].Value.ToString + ", " + myRec.Fields[1].Value.ToString + ", " + myRec.Fields[2].Value.ToString + ", " + myRec.Fields[3].Value.ToString + ", " + myRec.Fields[4].Value.ToString + ", " + myRec.Fields[5].Value.ToString); myRec.MoveNext; Счетчик++; } } private void ДобавитьСтроку(string p) { TreeNode tN = new TreeNode(p); treeView1.Nodes.Add(tN); } } }
#13
by Gepard
прикольно.. Спасибо... А где можно посмотреть параметры процедуры CreateTableDef ? а то в шарпе там куча параметров...
#14
by jbond
- Access Help Ausdruck.CreateTableDef(Name, Attributes, SourceTableName, Connect) Name Ein Variant-Wert (Untertyp String), der das neue TableDef-Objekt eindeutig benennt. Weitere Informationen zu g?ltigen TableDef-Namen finden Sie in dem Thema zur Name-Eigenschaft. Attributes Ein Variant-Wert (Untertyp String), der Informationen ?ber die Quelle einer ge?ffneten Datenbank enth?lt, eine in einer Pass-Through-Abfrage (Pass-Through-Abfrage: Eine SQL-Abfrage zum Senden von Befehlen direkt an einen ODBC-Datenbankserver. Mithilfe von Pass-Through-Abfragen arbeiten Sie direkt mit den Tabellen auf dem Server, anstatt die Daten durch das Microsoft Jet-Datenbankmodul zu verarbeiten.) verwendete Datenbank oder eine verkn?pfte Tabelle (Verkn?pfte Tabelle: Eine Tabelle, die in einer Datei au?erhalb der ge?ffneten Datenbank gespeichert ist, auf deren Datens?tze Access jedoch zugreifen kann. Sie k?nnen Datens?tze in einer verkn?pften Tabelle hinzuf?gen, l?schen und bearbeiten, jedoch nicht die Tabellenstruktur ?ndern.). Weitere Informationen ?ber g?ltige Verbindungszeichenfolgen (Verbindungszeichenfolge: Ein Zeichenfolgenausdruck, mit dem eine externe Datenbank ge?ffnet werden kann.) finden Sie im Thema zur Connect-Eigenschaft.
#17
by Gepard
мне надо при запуске приложения проверять структуру БД, и исправлять, если она не соответствует нужной.
#21
by Gepard
создание таблицы DAO.TableDef мояТаблица = мояБаза.CreateTableDef("Люди", 32, "", ""); мояТаблица.Fields.Append(мояТаблица.CreateField("Идентификатор", DAO.FieldAttributeEnum.dbVariableField, 37)); мояТаблица.Fields.Append(мояТаблица.CreateField("Наименование", DAO.FieldAttributeEnum.dbVariableField, 200)); мояБаза.TableDefs.Append(мояТаблица); Как сюда теперь добавить в существующую таблицу?
#22
by ЫЫЫЫ
А ты думаешь в ссылка для тупых одинэсников положена? Типа, крутым дотнетчикам западло на microsoft.com зайти?
#23
by Gepard
Как сюда теперь добавить в существующую таблицу? = Как добавить поле в существующую таблицу?
#26
by Gepard
(24, 22) + правда Microsoft рекомендует использовать ADO вместо DAO, таким образом все-таки будем работать через ADO
#27
by Gepard
Просьба закрыть ветку. И, если не трудно, переименовать ветку - в конце добавить в скобках (DAO).
#28
by jbond
- ADOX рекомендуется юзать из программ, поддерживающих только COM. В .Нет это можно сделать ср-вами Адо.Нет провайдера.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Таблицы, таблицы, таблицы... Будь они неладны
- А можно создать программно новый объект метаданных?
- как программно перебрать реквизиты справочника
- Как программно в ячейку таблицы записать выражение?
- Как программно перебрать все реквизиты документа и ...?
- Программно узнать адрес поименованной ячейки таблицы
- (Связка 1С+MS Access). Как программно поменять путь к таблице в БД
- Как программно задать Связь по Владельцу для Поля ввода Табличного поля?
- v7: Как после выполнения запроса программно вставить поля сводной таблицы
- Как программно перебрать системное перечисление webЦвета?
- программно вызвать обработку события поля ввода табличного поля "начало выбора"?
- можно ли связать добавляемые поля ввода программно с разными строками табл. поля?
В этой группе 1С
- как в запросе использовать момент времени
- "Основной отбор" измерения регистра сведений
- Как загрузить данные из Excel не используя COM-объекты?
- v7: Не отображается детализация субсчета в балансе
- Microsoft Outlook 2003, почтовый сервер imap, сроки хранения писем
- Объединение двух DBF файлов
- Выгрузка Регистров сведений при обмене - как выловить измерение ДокументСсы
- У кого сколько баз в окне запуска 1С ?
- Открытие принтеров и печать в 1С по сети ужасно тормозит
- Avi-шка 4,5 Гб... Чем из нее сделать DVD или чем ее порезать?
- Как получить результат выбора справочника ?
- Автоматическое заполнение СерииНоменклатуры в ТЧ
- Инвентаризация в УПП
- Удаление объектов конфигурации
- Записка-расчет Т-61
- вывод секций в таблице
- v7: Отчет по дебиторской и кредиторской задолженности по дате возникновения
- Формирование цен на основании приходной накладной в УТ 8.0
- Выгрузка накладных в ТСД
- Временные таблицы в запросах