【问题标题】:Matlab to Microsoft Access Database 2010 Date and TimeMatlab 到 Microsoft Access 数据库 2010 日期和时间
【发布时间】:2013-11-03 00:58:14
【问题描述】:

如何通过点击matlab图形上的按钮输入MS访问的日期和时间?

我的日期和时间复选框代码是:

m=1;
while m==1
m=get(hObject,'value');
txt=datestr(now);
set(handles.text7,'string',txt);
pause(1);
end

该代码位于复选框中,日期和时间显示在静态文本中。我想要做的是插入一个按钮,每当我按下按钮时,它将作为输入发送到数据库表,但我不知道如何将 MS 访问同步到 MatLab。请帮助我,因为我现在很困扰:(提前谢谢!

【问题讨论】:

    标签: database matlab ms-access data-export


    【解决方案1】:

    您可以使用剪贴板建立从 Matlab 到 MS Access 的基本通信。

    Matlab 部分 - 按钮的回调函数将按实际日期和时间填充剪贴板。这是通过代码实现的:

    clipboard('copy', datestr(now));
    

    每次按下按钮,剪贴板内容都会改变。

    MS Access 部分您可以通过以下方式访问剪贴板文本内容

    Dim MyData As DataObject
    Dim strClip As String
    Set MyData = New DataObject
    MyData.GetFromClipboard
    strClip = MyData.GetText
    

    您可以使用计时器 (see this SO for example) 监控剪贴板的变化。

    您也可以填充一个专用的文本文件,因为剪贴板可能被其他进程或用户操作使用。

    【讨论】:

    • 那么我将把代码放在哪里? Dim MyData As DataObject Dim strClip As String Set MyData = New DataObject MyData.GetFromClipboard strClip = MyData.GetText 我似乎在 Access 中找不到剪贴板跨度>
    • 此 VBA 代码将插入到与您的 Access 数据库相关的宏中。如果您不熟悉编辑宏,您可以创建一个,然后将其转换为 VBA,然后插入上面的 VBA 代码以及一个监控循环。在此处查看操作方法 (office.microsoft.com/en-gb/access-help/…)。
    • 呃抱歉回复晚了,我检查了你发布的链接,它没有说明如何使用 VBA,也没有程序。你能用更简单的方式说明吗?我阅读了整个链接,甚至复制了步骤,但我似乎无法应用代码。对不起,我是个菜鸟:(
    • 您可以尝试在网络上查找一些教程 - 例如 youtube.com/watch?v=G9pqmd2PSYk 上的此教程,该教程向您展示了如何在表单加载和按钮单击时插入一些 VBA 代码。
    • 好的,我对如何使用 MS Access 和 MatLab 的基本通信进行了整理。进程是MatLab-clipboard-MS Access。我真正需要的是MatLab-MS Access。我需要使用 MatLab 中的按钮将数据直接导出到 MS Access。
    【解决方案2】:

    我终于把matlab和ms access的连接上了。 Here's先配置连接的教程。

    成功建立连接后,我在回调中使用了这段代码。

    conn = database('databasename','username','password');
    dbpath = 'C:\Users\______.mdb'; %insert database path
    tableName = 'datetime'; %insert tablename here in MSAccess
    colname = {'column1'} %column of your tables in MsAccess
    date = datestr(now); %the string of date and time
    coldata = {date}
    insert(conn,tableName,colname,coldata); %will insert the data to the database.
    close(conn);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-01
      相关资源
      最近更新 更多