繁体   English   中英

SQL代码导入到Access 2007中

[英]SQL code import into Access 2007

我基本上需要知道如何将SQL代码导入Access。 我尝试了一种方法,但这需要我一次做一张表和一个值,这要花很多时间。

有人可以帮忙吗?

如果要导入数据而不是SQL代码(请参见Duffymo的响应),则有两种方法。

一种方法是转到数据所在的位置并转储一个.CSV文件,然后将其导入,如Duffymo所回应。

另一种是创建从Access数据库到源数据库中的表的表链接。 如果两个数据库将以这种方式互相通信,则可以像使用Access数据库中一样使用远程表中的数据。

SQL代码? 还是数据? “一张桌子一张价值”让我认为是后者。 如果是这样,我建议将数据转储到.csv文件中,然后将其导入Access表中。

或者,也许使用Microsoft DTS之类的工具在源之间映射和移动数据。 那将是最好的主意。

好吧,几天前,我需要将数据从Access数据库转移到SQL(与您的工作相反)。 我发现编写一个简单的脚本会更简单,该脚本将从我的访问数据库中读取数据并将其插入SQL。

我认为做您需要做的事情没有什么不同。

我不知道是否有帮助,但是我发布了我的代码(这是一个简单的C#函数)。 您只需更改连接即可使用。 当然,我只有3个字段,所以我对其进行了硬编码。 您可以对数据库架构执行相同的操作。

protected void btnProcess_Click(object sender, EventArgs e)
{
    //Open the connections to the access and SQL databases
    string sqlDBCnn = @"Data Source=.\SQLEXPRESS;Integrated Security=True;AttachDBFileName=|DataDirectory|\mydb.mdf;user instance=true";
    string accessDBCnn = @"Provider=Microsoft.Jet.OleDB.4.0;Data Source=C:\mydb.mdb";

    OleDbConnection cnnAcc = new OleDbConnection(accessDBCnn);
    cnnAcc.Open();

    SqlConnection cnnSql = new SqlConnection(sqlDBCnn);
    cnnSql.Open();

    SqlCommand cmSql = new SqlCommand("DELETE tablename", cnnSql);
    cmSql.ExecuteNonQuery();

    //Retrieve the data from the Access Database
    OleDbCommand cmdAcc = new OleDbCommand("SELECT * FROM tablename", cnnAcc);
    OleDbDataReader drAcc = cmdAcc.ExecuteReader();

    using (drAcc)
    {
        if (drAcc.HasRows)
        {
            //Loop through the access database records and add them to the database
            while (drAcc.Read())
            {
                SqlCommand cmdSql = new SqlCommand("INSERT INTO tablename(Category, Head, Val) VALUES(@cat,@head,@val)",cnnSql);

                SqlParameter parCat = new SqlParameter("cat",System.Data.SqlDbType.VarChar,150);
                SqlParameter parHead = new SqlParameter("head",System.Data.SqlDbType.VarChar,150);
                SqlParameter parVal = new SqlParameter("val",System.Data.SqlDbType.VarChar);
                parCat.Value = drAcc["Category"].ToString();
                parHead.Value = drAcc["Head"].ToString();
                parVal.Value = drAcc["Val"].ToString();
                cmdSql.Parameters.Add(parCat);
                cmdSql.Parameters.Add(parHead);
                cmdSql.Parameters.Add(parVal);

                cmdSql.ExecuteNonQuery();
            }
        }
    }

    lblMsg.Text = "<p /> All Done Kapitone!";

}

我猜您正在谈论从SQL将结构和数据“导入”到ACCESS。 ACCESS不接受您可以直接从SQL数据库直接生成的标准TSQL脚本。 有些商业产品(例如EMS)或多或少可以为您完成这项工作。 EMS具有数据导出器模块,该模块可以采用不同格式(包括Access)获取您的SQL数据。

另一种方法是利用DoCmd.TransferDatabase方法打开Access文件并编写一些基本的VBA代码,在该方法中,您可以将表从其他数据库链接或复制到Access中。

我忘记了这些方法是否还允许传输“干净的”数据库模型,包括主键和关系...您将不得不尝试一下。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM