全部
我正在尝试填充activexlist视图,但出现错误3265。
填充它的代码是:
static DevI2C *ext_i2c;
static LSM6DSLSensor *acc_gyro;
char mystatus[20];
int mevent = 0;
LSM6DSL_Event_Status_t evstats;
void setup(){
ext_i2c = new DevI2C(D14, D15);
acc_gyro = new LSM6DSLSensor(*ext_i2c, D4, D5);
acc_gyro->init(NULL);
/* Attach callback to LSM6DSL INT1 */
acc_gyro->attachInt1Irq(&memsevent);
acc_gyro->enableAccelerator();
acc_gyro->enableGyroscope();
acc_gyro->enableFreeFallDetection(LSM6DSL_INT1_PIN);
acc_gyro->setFreeFallThreshold(0);
}
void memsevent() {
mevent = 1;
}
void freeFall(){
int n=sizeof(colors)/sizeof(colors[0]);
uint8_t *color=colors[(colorindex++)%n];
rgbLed.setColor(color[0],color[1],color[2]);
}
void showSensors(){
if(!acc_gyro->getEventStatus(&evstats)){
strcpy(mystatus,"got stats");
if(evstats.FreeFallStatus){
strcpy(mystatus, "in freefall");
freeFall();
}
}
if(mevent){
strcpy(mystatus, "mem");
}
char buff[50]; // screen print stuff
sprintf(buff, "status:%s \r\n num:%i",,mystatus,evstats.FreeFallStatus);
Screen.print(buff);
}
引发错误的记录集是:
Do Until rs.EOF
Set lstItem = ctlListView.ListItems.Add()
lstItem.text = rs!EntityID
lstItem.subitems(1) = Nz(rs!Class, "")
lstItem.subitems(2) = Nz(rs!Bundle, "")
lstItem.subitems(3) = Nz(rs!Reference, "")
lstItem.subitems(4) = Nz(rs!DisplayReference, "")
lstItem.subitems(5) = Nz(rs!CalculatedReference, "")
lstItem.subitems(6) = Nz(Format(rs!EntityDate, "d mmm yyyy"), "")
lstItem.subitems(7) = Nz(Format(rs!EntityTime, "hh:mm am/pm"), "")
lstItem.subitems(8) = Nz(rs!Description, "")
[...]
我在网上收到错误消息
SELECT p_Primary_1.EntityID, p_Primary_1.Class, p_Primary_1.Reference, p_Primary_1.Bundle, p_Primary_1.EntityDate, p_Primary_1.EntityTime, p_Primary_1.Description, p_Primary_1.DisplayReference, p_Primary_1.CalculatedReference, p_Primary.EntityID
FROM p_Primary AS p_Primary_1 INNER JOIN (p_Primary INNER JOIN JunctionTable ON p_Primary.EntityID = JunctionTable.PK1) ON p_Primary_1.EntityID = JunctionTable.PK2
WHERE (((p_Primary.EntityID) = 46) AND ((JunctionTable.RelationshipType) = 'EXEX'));
我认为这是因为“ EntityID”在记录集中存在两次(p_Primary_1.EntityID和P_Primary.EntityID)。
如何避免该错误? (例如,是否可以仅在集合中添加第一个对象(始终为“ EntityID”)?)
答案 0 :(得分:2)
以相反的顺序回答您的问题...
是否可以简单地在集合中添加第一个对象(始终为“ EntityID”)?
是的,您可以通过其记录集字段(从零开始)索引。因此,第一个字段是rs.Fields(0)
或rs(0)
偶然地,您可以使用rs.Fields(0).Name
来查看Access在记录集中用于该字段的名称。
如何避免该错误?
如果使用Fields(0)
,则需要确保在修改SELECT
时/根据需要对其进行更新。
如果您确实需要查询中的两个EntityID
字段,请为其中一个别名或两个别名...
SELECT p_Primary_1.EntityID AS EntityID1, p_Primary.EntityID AS EntityID0
否则,只需SELECT
的两个EntityID
字段之一。