如何把mdb 导入 access

如何把mdb 导入 access,第1张

mdb是早期access版本的文件格式,用新版本的access是可以直接打开的。如果需要将mdb格式的数据导入到新版本的access库中,你可以使用导入外部数据功能。下面以access2010为例,导入一个mdb的库。

方法步骤:

1 打开现有的数据库,点“外部数据”--“导入并链接”中的“access”按钮

2 找到你要导入的mdb库,按你的需要选择是导入还是链接。二者的区别在选择提示里面有,这里选择第一个选项。

3 选择在mdb库中你所需要导入的部分,可以是表,查询等。

4 确定后,关闭导入向导,所选的“网虫一族”表将成为现有数据库的一部分,导入完毕

1,进入plsql,登录oracle数据库,打开‘工具-ODBC导入器’

2,在‘来自ODBC的数据’标签下,在‘用户/系统 DSN’处选择MS Access Database,然后输入用户名、密码,点‘连接’,在d出的窗口中选择你的mdb文件。然后确定。

3,在‘到oracle的数据’标签下,选择你要导入的表,再点‘导入’按钮就可以了。

思路很简单,就是先依次获取Excel中表的表名,然后再将Excel表的数据导入到内存以DataTable格式存在,最后再把dataTable数据导入到Mdb数据库文件中。最后实现的功能可以使Excel多表进行导入,如果Mdb数据库文件中已有新建的表, *** 作是先删除数据库中的已存在表,再重新创建表,导数据。

源码:

using System;using SystemCollectionsGeneric;using SystemComponentModel;using SystemData;using SystemDrawing;using SystemLinq;using SystemText;using SystemThreadingTasks;using SystemWindowsForms;using SystemDataOleDb;

namespace TestK

{

public partial class Form1 : Form    {

public Form1()

{

InitializeComponent();

}

public int tableNameNum = 0;   //记录Excel中所有表的数量        public OleDbConnection connection = new OleDbConnection("Provider=MicrosoftJetOLEDB40;Data Source=C:\\Users\\CES\\Desktop\\CESmdb");

//建立与数据库文件CESmdb的连接

//打开以xls或者xlsx结尾的文件        private void button1_Click(object sender, EventArgs e)

{

OpenFileDialog dlg = new OpenFileDialog();   //创建窗体            dlgFilter = "Excel文件 (xls;xlsx)|xls;xlsx";    //浏览过滤出以xls或者xlsx结尾的文件            if(dlgShowDialog() ==  DialogResultOK)

{

string filePath = dlgFileName;  //获取打开文件的路径                thistextBox1Text = filePath;

}

}

//获取Excel中所有表的表名        public string[] GetTableName(string excelFilename)

{

//建立与指定Excel文件的连接            string connectionString = stringFormat("Provider=MicrosoftACEOLEDB120;Data Source={0};Jet OLEDB:Engine Type=35;Extended Properties=Excel 80;Persist Security Info=False", excelFilename);

string[] tableName = new string[20]; //存储Excel中所有表的表名            string temp;  //中间变量

using (SystemDataOleDbOleDbConnection connection = new SystemDataOleDbOleDbConnection(connectionString))

{

connectionOpen();

//获取数据库架构信息,包括列、主键、表等信息                DataTable table = connectionGetOleDbSchemaTable(SystemDataOleDbOleDbSchemaGuidTables, null);

for (int i = 0; i < tableRowsCount;i++ )

{

temp = tableRows[i]["Table_Name"]ToString();  //获取Excel中的表名                    tableName[i] = tempReplace("$", "");   //因为获取的表名最后会有$符号,所以要替换                }

tableNameNum = tableRowsCount;

connectionClose();

}

return tableName;

}

//获取Excel中每张表的数据,以datatable类型返回        public DataTable GetExcelTable(string excelFilename,string tableName)

{

//建立与指定Excel文件的连接            string connectionString = stringFormat("Provider=MicrosoftACEOLEDB120;Data Source={0};Jet OLEDB:Engine Type=35;Extended Properties=Excel 80;Persist Security Info=False", excelFilename);

DataSet ds = new DataSet();  //数据集            //using中声明的对象connection,在using语句块结束后会自动释放            using (SystemDataOleDbOleDbConnection connection = new SystemDataOleDbOleDbConnection(connectionString))

{

connectionOpen();

//获取数据库架构信息,包括列、主键、表等信息                DataTable table = connectionGetOleDbSchemaTable(SystemDataOleDbOleDbSchemaGuidTables, null);

string strExcel = "select  from " + "[" + tableName + "$]";

//打开数据链接,得到一个数据集                OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, connectionString);

//在数据集中查询表名为tableName的表,然后把其数据在装入数据集ds中                adapterFill(ds, tableName);

connectionClose();

}

return dsTables[tableName];//以datatable类型返回数据集ds中表名为tableName的表        }

//判断在数据库中,指定表名的表是否存在        public bool TableExists(string table)

{

bool rythm;

connectionOpen();

//读取表名为table的表的行数信息            rythm = connectionGetSchema("Tables", new string[4] { null, null, table, "TABLE" })RowsCount > 0;

connectionClose();

return rythm;

}

//如果在建表之前,数据库已经存在该表,那么首先要先删除此表        public void DeleteTable(string tableName)

{

string sql = "drop table "+tableName+";";

connectionOpen();

OleDbCommand cmd = new OleDbCommand(sql, connection);

cmdExecuteNonQuery();

connectionClose();

}

//中间类型为dataTable的表数据转换到数据库mdb文件中        public bool dataTableToMdb(string excelPath,string tableName)

{

//获取Excel中表的数据            DataTable dt = GetExcelTable(excelPath,tableName);

//表中数据大于等于两行,数据转入格式才是正确的            if (dtRowsCount >= 2)

{

string[] cloumnName = new string[50];

//获取Excel中表的所有列名                for (int i = 0; i < dtColumnsCount; i++)

{

cloumnName[i] = dtRows[0][i]ToString();

}

//在mdb数据库文件中创建表                string sql = "create table " + tableName + " (" + cloumnName[0] + " varchar null)";

connectionOpen();

OleDbCommand cmd = new OleDbCommand(sql, connection);

cmdExecuteNonQuery();

//在mdb数据库文件中,给已创建好的表添加好所有列                    for (int i = 1; i < dtColumnsCount; i++)

{

sql = "alter table " + tableName + " add " + cloumnName[i] + " varchar null";

cmd = new OleDbCommand(sql, connection);

cmdExecuteNonQuery();

}

//在mdb数据库文件中,给已创建好的表加入数据                            for (int t = 1; t < dtRowsCount; t++)

{

sql = "insert into " + tableName + " values('";

for (int k = 0; k < dtColumnsCount; k++)

{

if (k != dtColumnsCount - 1)

{

sql = sql + dtRows[t][k]ToString() + "','";

}

else                                    {

sql = sql + dtRows[t][k]ToString() + "')";

}

}

cmd = new OleDbCommand(sql, connection);

cmdExecuteNonQuery();

}

connectionClose();

return true;

}

else            {

MessageBoxShow("Excel中"+ tableName +"表的原始数据格式不正确!");

}

return false;

}

private void button2_Click(object sender, EventArgs e)

{

int flag = 1;  //判断由Excel表导入到Mdb是否成功的标记变量                      

1在‘开始’菜单打开‘Microsoft SQL Server 2005→SQL Server Management Studio’。

2新建一个数据库(名称自定义),选择新建的数据库点击右键选择‘任务→导入数据’。

3在d出的页面点击下一步,‘数据源’选择‘Microsoft Access’,然后选择Access数据库所在的路径,如果Access数据库有用户名和密码就需要填写,如果没有就不用填写。点击‘下一步’。

4在d出的页面,‘数据源’可以安默认的不动。‘服务器名称’及‘身份验证’要和登录时的服务器及身份验证一样(如果不一样,在下面的数据库下拉框里找不到刚才新建的数据库)。在下面的数据库下拉框选择新建的数据库(如果没有新建的数据库,点击后面的刷新按钮。如果还是没有就检查服务器名称’及‘身份验证’是否正确)。可以点击后面的‘新建’。点击‘下一步’。

5在d出的页面,按照默认选择第一项(复制一个或多个表或视图的数据)。点击‘下一步’。

6在‘选择源表和源视图’页面,选中要导入的表和视图。(可以点击‘预览’查看表中的数据)点击‘下一步’。

7按照默认‘立即执行’,点击‘下一步’。

8点击‘完成’。

如果没有,就说明你excel版本太低,升级吧。

另外access打开mdb,也是可以导出为excel文件的。

这都是菜单上能找到的基本功能了。

在SQL里新建一个数据库;选择你新建的数据库点击右键选择所有任务(K) -- 导入数据(E) -- 下一步 -- - 打开DTS 导入/导出向导;数据源(D)选择Microsoft Access (以上这步要小心,因为有些人没去拉滚动条,所以看不到。记得是**的药匙就行了)--文件名(F)选择mdb -- 下一步 ---选择目的 -- 数据库(D)选择刚才新建的数据库,其它的默认就行了 -- 下一步 -- 从数据库复制表和视图 -- 下一步 ---表和视图全选-- 下一步-- 立即运行-- 下一步 -- 提示导入完成 -- 确定完成。

以上就是关于如何把mdb 导入 access全部的内容,包括:如何把mdb 导入 access、如何用plsql将mdb文件导入到oracle数据库中、excel格式文件怎么导入至mdb文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10065154.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存