读取注册表根据Office版本获取数据库连接字段_Access

/// <summary>
/// 读取注册表,根据Office版本获取数据库连接字段
/// </summary>
/// <returns>数据库连接字段</returns>
private string GetConnectionString()
{
  string strConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = "; 

  RegistryKey rk = Registry.LocalMachine;
  //查询Office2003
  RegistryKey f03 = rk.OpenSubKey(@"SOFTWARE\Microsoft\Office\11.0\Access\InstallRoot\");
  //查询Office2007
  RegistryKey f07 = rk.OpenSubKey(@"SOFTWARE\Microsoft\Office\12.0\Access\InstallRoot\");
  //查询Office2010
  RegistryKey f10 = rk.OpenSubKey(@"SOFTWARE\Microsoft\Office\14.0\Access\InstallRoot\"); 

  if (f03 != null)
  {
    strConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = ";
  }
  else if (f07 != null || f10 != null)
  {
    strConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source = ";
  } 

  return strConnectionString;
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索注册表
, 数据库连接
Office版本
access数据库连接、vb与access数据库连接、c与access数据库连接、access数据库连接出错、access数据库连接工具,以便于您获取更多的相关知识。

时间: 2024-11-02 01:19:44

读取注册表根据Office版本获取数据库连接字段_Access的相关文章

.Net 2.0 原汁原味读取注册表

注册表 在.Net 1.x当中,使用Microsoft.Win32.RegistryKey类的GetValue方法读取注册表数据时,其实数据都是经过"处理"的: 例如,某个字符串数据本来的值是%SystemRoot%\System32\IoLogMsg.dll但是用GetValue方法得到的数据却是C:\WINDOWS\System32\IoLogMsg.dll 也就是说,在读取注册表中的字符串时,系统会自作主张地替你展开环境变量. 这的确省去我们调用Environment.Expan

c++读取注册表详解

  1.读注册表 // 读取注册表 CString ReadRegisteTable(CString root,CString path, CString key) { HKEY hAppKey; LPCTSTR WINDS_SERVICE_REGISTRY_KEY=path; LPCTSTR DATA_FILE_SUB_KEY=key; char szDataFile[80]; if(root=="HKEY_LOCAL_MACHINE") { if (ERROR_SUCCESS ==

vc++-VC++ 读取注册表返回2的问题

问题描述 VC++ 读取注册表返回2的问题 我想读取一下DHCP的 IP地址,可是RegQueryValue返回来2的错误,请大侠帮我看看,是怎么回事?多谢了! int main(int argc, char* argv[]) { HKEY hTT; long lRet; //lRet=RegOpenKey(HKEY_LOCAL_MACHINE,"SYSTEMControlSet001ServicesTcpipParametersInterfaces{CF166061-CAE0-4198-923

Advanced Installer读取注册表时将Program Files读取为Program Files (x86)的解决办法

原文:Advanced Installer读取注册表时将Program Files读取为Program Files (x86)的解决办法 今天同事在做安装包的时候,有一个读取注册表路径的需求,需要根据读取的值来写配置文件,按照常规的做法,写好了注册表搜索方法,但是在测试的时候,发现总是会将系统盘下的Program Files\xxx路径读取为Program Files (x86)\xxx,如下图所示: 之后测试了如果读取非系统盘下的此路径,不会出现这个问题. 但是这个路径一般情况下都是默认安装在

代码-如何用VC读取注册表二进制值,比如ShutdownTime?求助~

问题描述 如何用VC读取注册表二进制值,比如ShutdownTime?求助~ 用RegQueryValueEx读取数据,应该放在哪种数据类型中呢,求有效代码~ 下面这段是自己的提取TypedURLsTime的代码.不知问题在哪.. int main() { HKEY hKey; DWORD lpType = REG_BINARY; BYTE time[64]; DWORD timeSize = sizeof(time); RegOpenKeyEx(HKEY_CURRENT_USER, "Soft

C# 多线程读取注册表,加载至TreeView_C#教程

复制代码 代码如下: using System; using System.Drawing; using System.Windows.Forms; using System.Threading; using Microsoft.Win32; namespace 星空个性化助手 { public partial class Form1 : Form { private delegate void LoadTreeView左侧( TreeNode node );//声明委托类型 public Fo

js读取注册表的键值示例_javascript技巧

复制代码 代码如下: <span style="font-size:18px">try { var shell = new ActiveXObject("WScript.Shell"); --读取注册表 var key = shell.RegRead("HKEY_CURRENT_USER\\Software\\AC3Filter\\equalizer\\Linear scale\\eq_freq_0"); -- 删除注册表 shell

java读取注册表乱码问题

问题描述 用Java读取注册表时候,注册表的字段如果是中文的话会变成"?"号:....Stringkeys[]={"info"};Stringvalues[]={"中文"};Preferencesprefs=Preferences.userRoot().node("/library/fps");for(inti=0;i<keys.length;i++){prefs.put(keys[i],values[i]);}...

.Net 2.0 原汁原味读取注册表_实用技巧

在.Net 1.x当中,使用Microsoft.Win32.RegistryKey类的GetValue方法读取注册表数据时,其实数据都是经过"处理"的: 例如,某个字符串数据本来的值是%SystemRoot%\System32\IoLogMsg.dll但是用GetValue方法得到的数据却是C:\WINDOWS\System32\IoLogMsg.dll 也就是说,在读取注册表中的字符串时,系统会自作主张地替你展开环境变量. 这的确省去我们调用Environment.ExpandEnv