procedure TFW110Form.Button2Click(Sender: TObject);
var
  F: TShFileOpStruct;
begin
  F.wnd := Handle;
  F.wFunc := Fo_Delete; 
  F.pFrom := pAnsichar(ExtractFileDir(Application.ExeName) + '\Data\MJYKQ.mdb' + #0);
  F.fFlags := FOF_ALLOWUNDO or FOF_RENAMEONCOLLISION;
  DM.ADOConnection.Connected := False;
  if ShFileOperation(F) <> 0 then
    MessageBox(0, '删除原始数据文件失败!', '错误', MB_OK + MB_ICONSTOP)
  else
  begin
    OpenDialog1.Filter := 'ACCESS 文件(*.mdb)|*.mdb';
    OpenDialog1.InitialDir := ExtractFileDir(Application.ExeName) + '\Data\backup\';
    OpenDialog1.Title := '选择备份文件';
    if OpenDialog1.Execute then
      if CopyFile(PChar(OpenDialog1.FileName), PChar(ExtractFileDir(Application.ExeName) + '\Data\MJYKQ.mdb'), False) then
        MessageBox(0, '数据文件恢复成功!', '成功', MB_OK + MB_ICONINFORMATION);
    DM.ADOConnection.Connected := True;
  end;
end;以上语句运行到ShFileOperation(F)的时候就会出以下的错误:
Access violatial as address 77EB00E9 in module ''kernel32.dll''.Read of address 01350012     
这到底为什么啦????