很悲剧的是,存在ACCESS模块里的自定义函数C#程序里不能使用,报错为“函数未定义”,这个查询可是存放在ACCESS里的啊!?微软的技术文章里只有关于调用EXECL和WORD的VBA,没有ACCESS的。微软这是什么狗屁逻辑?现在只有在C#里重写函数。花了好一些功夫才改写了ACCESS 中VBA的HZDate函数。还有货币的转换等着我……
public static string HZDate(DateTime myDate, string ymd)
{
if (myDate == null)
{
return null;
}
int i, intday = int.Parse(myDate.Day.ToString());
string Cyear = "", Cmonth = "", Cday = "", CDate = "";
string year = myDate.Year.ToString();
string month = myDate.Month.ToString();
string day = myDate.Day.ToString();
string cn = "○一二三四五六七八九";
for (i = 0 ;i < year.Length; i++)
{
Cyear = Cyear + cn.Substring(int.Parse(year.Substring(i,1)),1);
}
switch (month)
{
case "12":
Cmonth = "十二";
break;
case "11":
Cmonth = "十一";
break;
case "10":
Cmonth = "十";
break;
default:
Cmonth = cn.Substring(int.Parse(month), 1);
break;
}
int DN1 = intday / 10;
int DN2 = intday % 10;
if (DN1 > 1)
{
Cday = cn.Substring(DN1, 1);
}
if (DN1 > 0)
{
Cday = Cday + "十";
}
if (DN2 != 0)
{
Cday = Cday + cn.Substring(DN2, 1);
}
CDate = Cyear + "年" + Cmonth + "月" + Cday + "日";
switch (ymd)
{
case "y":
return Cyear;
case "m":
return Cmonth;
case "d":
return Cday;
case "ymd":
return CDate;
default:
return null;
}
}