Use php y wamp para insertar en el archivo mdb que abrió otro programa

Todavía necesito resolver este problema :(

Estoy ejecutando un nombre de programa QMS en Windows XP para imprimir el ticket para el paciente. Utiliza Access como base de datos. Me doy cuenta de que en esta base de datos hay un nombre de tabla rData. Cuando alguien necesita imprimir un boleto, insertará una nueva fila en esta tabla, y la columna Ticketno será más uno.

Puede ver en la imagen de arriba que inserta una nueva fila con Ticketno = 258 y la impresora imprime un ticket 258 para el paciente.

A continuación, instalo Wamp en esta computadora y uso php para insertar en esta tabla cuando quiero. Aquí está mi código para insertar:

$dbName = "E:\\2.mdb";
if (!file_exists($dbName)) {
    die("Could not find database file.");
}
try {
    $db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$dbName; Uid=; Pwd=;");
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}
$sql = "SELECT TOP 1 Ticketno FROM rdata WHERE ServiceId = 1 ORDER BY ID DESC";
$result = $db->query($sql);
$row = $result->fetch();
$num = $row['Ticketno']+1;
if(isset($_POST['submit'])){
    $sql = "INSERT INTO rdata(ServiceID, Ticketno, TicketFlag, TicketChain) VALUES(1,".$num.",0,';01')";
    $result = $db->query($sql);
}

Después de ejecutar este código, abro el archivo a través de Microsoft Access y miro la tabla rData, veo que se inserta una nueva fila (Ticketno = 259 en este caso). Y presiono el botón de imprimir con la esperanza de que imprima un boleto con el número = 260.

Pero, todavía imprime un ticket 259 e inserta en rData una fila con Ticketno = 259, ahora tengo 2 filas con Ticketno = 259. Parece que el programa ignora mi consulta.

Eliminé estas 2 filas y lo vuelvo a hacer. Sin embargo, antes de presionar el botón imprimir, salgo del programa y vuelvo a abrir. Ahora imprime el boleto 260. ¿Alguien puede explicarme esto? ¿Qué tengo que hacer?

Respuestas a la pregunta(0)

Su respuesta a la pregunta