“access索引或主关键字不能包含一个空 (Null)值”是啥意思?怎么解决?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了“access索引或主关键字不能包含一个空 (Null)值”是啥意思?怎么解决?相关的知识,希望对你有一定的参考价值。
1、这个提示的意思是你的Excel中的关键字段有空值。你要先点教师编号,输入某些数值,然后才可以编辑名字,工作日期等数据;
2、主键中不允许有重复值和空值的,主键可以是一个字段或是一组字段,一组字段叫联合主键;
3、ACCESS中主健或索引都不能超过10个,超过10个,它会有信息提示你的;
4、检查一下新的数据,要不把原始数据表的主码取消。
主健当然是不允有重复值,不然就不叫主健了,但空值还是可以的,不过最好设置两个相关的属性"必填字段”,和"允许空字符串",这两个属性按字面意思理解就是了。
参考技术A在设计窗口中(建立并设计字段的那个窗口,要进入这个窗口需点击三角尺图标),将左下角的常规卡上的允许空字符串的否改成是,就行了。
参考技术B 我也是遇到同样情况,网上搜了一圈,无解,包括所有字段填满、删除导入的字段重新添加,都不顶。最后发现,在别的模式下显示时(我也不知道按什么键看到一个表),看到我的一条记录前面,有很多行空值。可能还是导入execl文件时,带进来多余的东西了。然后,重新打开execl,把我要的那部分复制,新建一个execl文件,只粘贴要的这部分(原来是有10来页的一个大表),然后导入,一切ok,主键都有了。如何在鼠标左键按下时触发循环 autoclicker c++
【中文标题】如何在鼠标左键按下时触发循环 autoclicker c++【英文标题】:How to trigger loop when left mouse down autoclicker c++ 【发布时间】:2020-03-07 08:48:31 【问题描述】:嘿,我试图让我的自动点击器只在我按住鼠标左键时点击。
void clikr()
INPUT Input =0;
int sleepzZz = 1000 / times;
active = false;
system(“cls”);
while(1)
if((GetAsyncKeyState(VK_LBUTTON) & 0x8000) != 0)
Sleep(sleepzZz);
Input.type = INPUT_MOUSE
Input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
::SendInput(1, &Input, sizeof(INPUT))
::ZeroMemory(&Input, sizeof(INPUT));
Input.type = INPUT_MOUSE;
Input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
::SendInput(1, &Input, sizeof(INPUT));
(我在手机上输入了这个,我很抱歉????) 基本上,循环会自行取消,因为它会发送 leftup。
我知道我可以将它绑定到另一个键,但是当我按住 leftdown 时我将如何让它工作
请帮忙
【问题讨论】:
【参考方案1】:使用GetAsyncKeyState
或GetKeyState
不适合这种情况。这是来自MSDN 的引用,指出您正在尝试做的事情不适合将这两个功能与SendInput
结合使用。
此函数不会重置键盘的当前状态。调用该函数时已按下的任何键都可能会干扰该函数生成的事件。
非常重要:您的目标应该是区分程序未模拟的输入和程序模拟的输入。 这并不意味着您应该使此代码复杂化并使用钩子验证输入是否合法(有关此方法的更多信息,请参见答案here)。您只想查看循环中是否生成了输入。
我想出了这个类似的解决方案,遗憾的是它仍然使用这两个函数,因为我不知道其他会测试输入的函数。 它并不完美,但它是我用简单代码所能得到的最接近的。
VOID WINAPI ClickLoop()
/** wait for any LMB press. */
while ((GetAsyncKeyState(VK_LBUTTON)&0x8000) == 0)
Sleep(1);
INT nCurrKeyState = GetKeyState(VK_LBUTTON);
INT nPrevKeyState;
do
INPUT Input;
ZeroMemory(&Input, sizeof(INPUT));
Input.type = INPUT_MOUSE;
Input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
SendInput(1, &Input, sizeof(INPUT));
Sleep(0); // how many miliseconds between the clicks.
Input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
SendInput(1, &Input, sizeof(INPUT));
// !! Do not set this number too low
// !! Setting it too low might cause infinite loops
// and you cannot stop your clicks at first try.
Sleep(70); // how many miliseconds the click is held.
nPrevKeyState = nCurrKeyState;
nCurrKeyState = GetKeyState(VK_LBUTTON);
if ((GetAsyncKeyState(VK_LBUTTON)&0x8000) == 0)
break;
while (nCurrKeyState != nPrevKeyState);
在你的主要内容中,你可以有类似的东西:
int main()
while(TRUE)
printf("In click loop...\n");
ClickLoop();
return 0;
不过,这不是一个合适的解决方案,但除了GetAsyncKeyState
和GetKeyState
之外,我不知道任何其他用于测试Windows 上的键的功能。它还有一个缺点,您不能将点击之间的时间设置为小于 70~80 毫秒,或者您可以打破它。
【讨论】:
以上是关于“access索引或主关键字不能包含一个空 (Null)值”是啥意思?怎么解决?的主要内容,如果未能解决你的问题,请参考以下文章