MS Access ODBC VBA刷新链接

时间:2015-06-02 16:16:15

标签: ms-access access-vba quickbooks

我有一个MS Access数据库,包含来自Intuit QuickBooks Enterprise的六(6)个ODBC表。我手动创建了这些链接,并且他们的工作正常。但是,链接需要每天刷新。我尝试编写VBA代码来自动执行此过程,但使用tdf.RefreshLinks始终失败。我总是要手动刷新链接。我发现数据库名称每天都在变化。一旦刷新,无论PC是否重新启动,它都会在当天的剩余时间内刷新。但是,第二天名称总是不同的。这必须是QuickBooks所做的事情。我想我需要能够抓住"这个数据库名称是为了让我的代码成功运行。有没有人听说过这个?有谁知道如何克服这个问题,以便我可以编写链接刷新脚本,而不是手动刷新它们?

由于我在此网站上没有声誉,我无法发布任何图片。但我可以解释我的MSysObjects查询显示QuickBooks链接表数据库名称为33c292ce6be44bdca0cc8dd6c68594a0,当我手动创建新链接时,“连接到SQL Anywhere”对话框在“数据库”选项卡上显示新日期的数据库名称:4b2444e2c7ff4c37aa53d12a648f2fa0。我知道一旦刷新链接,这将是我的MSysObjects查询中显示的数据库名称。我如何得到这个,以便我可以加入VBA代码?如果这真的是自动刷新链接的答案?

1 个答案:

答案 0 :(得分:0)

RefreshLink应该可以正常工作:

package com.parse.starter;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import com.parse.ParseObject;

public class CRUD extends Activity {

//Variables
EditText nameDetail;
EditText emailDetail;
EditText phoneDetail;

String nameField;
String emailField;
String phoneField;


Button save;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.crud);

    nameDetail = (EditText) findViewById(R.id.editText3);
    emailDetail = (EditText) findViewById(R.id.editText4);
    phoneDetail = (EditText) findViewById(R.id.editText5);

    save = (Button) findViewById(R.id.button3);

    // Button onClick Listener
    save.setOnClickListener(new View.OnClickListener() {

        public void onClick(View view) {
            nameField = nameDetail.getText().toString();
            emailField = emailDetail.getText().toString();
            phoneField = phoneDetail.getText().toString();

            ParseObject details = new ParseObject("Details");
            details.put("name", nameField);
            details.put("email", emailField);
            details.put("phone", phoneField);
            details.saveInBackground();
        }
    });
}