Configurare program

Rezolvare: Excel error initialization of the Data source failed

Excel Error: Initialization of the Data Source Failed” apare de obicei când încerci să importezi date dintr-o sursă externă (Access, SQL Server, Text/CSV, Web etc.) și Excel nu reușește să inițializeze conexiunea OLE DB / ODBC.

1. Verifică sursa datelor

Mesajul apare frecvent când:

  • fișierul sursă a fost mutat sau șters;

  • conexiunea din Excel (în „Data → Queries & Connections”) indică un path greșit;

  • lipsesc drepturile de acces la acel fișier.

2. Reinstalează / repară providerul de date

Dacă sursa e un fișier Access sau un alt tip de bază de date, trebuie să existe driverul potrivit:

Pentru Access / Excel:

Instalează (sau reinstalează) Microsoft Access Database Engine:

Alege varianta potrivită:

  • AccessDatabaseEngine_X64.exe – pentru Excel pe 64-bit

  • AccessDatabaseEngine.exe – pentru Excel pe 32-bit

După instalare, repornește Excel și reîncarcă datele.

3. Verifică Trust Center Settings

Excel poate bloca fișierele externe din motive de securitate.

  1. Mergi la File → Options → Trust Center → Trust Center Settings…

  2. Intră la External Content și Data Connections.

  3. Asigură-te că opțiunea „Enable all Data Connections” este selectată.

4. Verifică modul de lansare Excel

Dacă deschizi fișierul de pe o rețea sau partajare:

  • Deschide-l local (copie pe Desktop)

  • Asigură-te că nu e blocat: click dreapta → Properties → dacă vezi „Unblock”, apasă-l.

6. Dacă nicio varianta nu functioneaza:

  • Închide Excel complet.

  • Rulează comanda în CMD (ca Administrator):

    regsvr32 msado15.dll

    (Reînregistrează biblioteca ADO pentru conexiuni OLE DB.)

  • Repornește sistemul.

[mai mult...]

RFID Door Lock with Arduino

In this detailed guide, you’ll learn how to build an RFID door lock system using an Arduino Uno and an MFRC522 RFID reader. The system reads RFID cards or keyfobs, checks authorization, and controls a solenoid lock or servo latch to grant access. It’s perfect for home automation, maker projects, or educational demonstrations.

Solenoid Lock Wiring

Arduino D7 → Gate of MOSFET (via 100Ω resistor)
MOSFET Source → GND (common)
MOSFET Drain → Solenoid negative terminal
Solenoid positive → +12V
12V supply GND → Arduino GND
Flyback diode across solenoid (1N4007, cathode to +12V)

Optional Servo Connection

Servo Signal → D7 (PWM)
Servo V+ → 5V external supply
Servo GND → Common GND

Arduino Code — Basic Version

This version uses a hard-coded list of authorized RFID tags.

/* RFID Door Lock - Basic Version */
#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>

#define RST_PIN 9
#define SDA_PIN 10
MFRC522 rfid(SDA_PIN, RST_PIN);

#define ACTUATOR_TYPE 0  // 0=Solenoid/Relay, 1=Servo
const int RELAY_PIN = 7;
const int LED_PIN = 4;
const int BUZZER_PIN = 5;
const int SERVO_PIN = 7;
const unsigned long UNLOCK_MS = 3000;
Servo lockServo;

void setup() {
  Serial.begin(115200);
  SPI.begin();
  rfid.PCD_Init();
  pinMode(LED_PIN, OUTPUT);
  pinMode(BUZZER_PIN, OUTPUT);
  if (ACTUATOR_TYPE == 0) {
    pinMode(RELAY_PIN, OUTPUT);
    digitalWrite(RELAY_PIN, LOW);
  } else {
    lockServo.attach(SERVO_PIN);
    lockServo.write(0);
  }
  Serial.println("RFID door lock ready");
}

// Replace these with your own card UIDs
byte allowedUIDs[][4] = {
  {0xDE, 0xAD, 0xBE, 0xEF},
  {0x11, 0x22, 0x33, 0x44}
};
const int allowedCount = sizeof(allowedUIDs)/4;

bool uidAllowed(byte *uid, byte uidSize) {
  if (uidSize != 4) return false;
  for (int i=0;i<allowedCount;i++) {
    bool match = true;
    for (int j=0;j<4;j++) if (allowedUIDs[i][j] != uid[j]) { match = false; break; }
    if (match) return true;
  }
  return false;
}

void unlockAction() {
  Serial.println("UNLOCK!");
  digitalWrite(LED_PIN, HIGH);
  tone(BUZZER_PIN, 1000, 150);
  if (ACTUATOR_TYPE == 0) {
    digitalWrite(RELAY_PIN, HIGH);
    delay(UNLOCK_MS);
    digitalWrite(RELAY_PIN, LOW);
  } else {
    lockServo.write(90);
    delay(UNLOCK_MS);
    lockServo.write(0);
  }
  digitalWrite(LED_PIN, LOW);
}

void loop() {
  if (!rfid.PICC_IsNewCardPresent()) return;
  if (!rfid.PICC_ReadCardSerial()) return;

  Serial.print("Card UID:");
  for (byte i=0;i<rfid.uid.size;i++) {
    Serial.print(" ");
    Serial.print(rfid.uid.uidByte[i], HEX);
  }
  Serial.println();

  if (uidAllowed(rfid.uid.uidByte, rfid.uid.size)) {
    Serial.println("Access granted");
    unlockAction();
  } else {
    Serial.println("Access denied");
    for (int i=0;i<2;i++) {
      tone(BUZZER_PIN, 600, 150);
      digitalWrite(LED_PIN, HIGH);
      delay(200);
      digitalWrite(LED_PIN, LOW);
      delay(100);
    }
  }

  rfid.PICC_HaltA();
  rfid.PCD_StopCrypto1();
}

Advanced Version — Store Tags in EEPROM

This version allows adding and removing authorized cards dynamically through the Serial Monitor.

/* RFID Door Lock - EEPROM Version */
#include <SPI.h>
#include <MFRC522.h>
#include <EEPROM.h>

#define RST_PIN 9
#define SDA_PIN 10
MFRC522 rfid(SDA_PIN, RST_PIN);

#define RELAY_PIN 7
#define LED_PIN 4
#define BUZZER_PIN 5
#define UNLOCK_MS 3000
#define MAX_TAGS 20
#define UID_SIZE 4
#define EEPROM_START 0

void setup() {
  Serial.begin(115200);
  SPI.begin();
  rfid.PCD_Init();
  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, LOW);
  pinMode(LED_PIN, OUTPUT);
  pinMode(BUZZER_PIN, OUTPUT);
  Serial.println("RFID lock with EEPROM ready");
}

/* Helper functions omitted for brevity in this preview — see full code in guide */

Serial commands:

  • l — List stored tags
  • a — Add a new tag (scan after command)
  • r — Remove a tag
  • c — Clear all stored tags

Power Considerations

  • Use a separate 12V supply for the solenoid; common the grounds.
  • Add a large capacitor (470µF–2200µF) across the solenoid supply.
  • Always include a flyback diode to protect electronics.
  • If using a servo, power it from an external 5V supply.

Mechanical Installation

  • Ensure alignment between lock and strike plate.
  • Provide a manual override or emergency key.
  • Mount RFID reader within 5–10 cm of tag presentation area.
  • Keep metal objects away from the RC522 antenna.

Testing Steps

  1. Upload code and open Serial Monitor (115200 baud).
  2. Scan a card — its UID should appear.
  3. Add card to allowed list or EEPROM memory.
  4. Test actuator operation and timing.
  5. Confirm power supply stability under load.

Troubleshooting

Issue Possible Cause Fix
No response from reader Wrong wiring or 5V used Use 3.3V and correct SPI pins
Actuator not moving Power supply too weak or wrong driver Use proper MOSFET/relay and check GND
UIDs print gibberish Wrong Serial baud rate Match Serial.begin(115200)
Unstable lock Power noise Add capacitor or separate supply

Security Enhancements

  • Use MIFARE DESFire or NTAG cards for better encryption.
  • Add a keypad for two-factor access (RFID + PIN).
  • Implement attempt-limit lockout for brute-force protection.
  • Use metal enclosure and tamper switch for extra security.

Optional Upgrades

  • OLED/LCD display for user feedback
  • Wi-Fi / MQTT integration (ESP8266 or ESP32)
  • RTC + SD card logging for audit trail
  • Battery backup for power loss protection
  • Cloud dashboard or mobile control app.
[mai mult...]

Remediere eroare 0x800f0905 Windows

Eroarea 0x800f0905 apare adesea la actualizările Windows (Windows Update / Cumulative Updates) și indică probleme legate de pachete de actualizare corupte, componente ale Windows Update deteriorate sau incompatibilități în sistem.

Iată un proces pas cu pas de diagnostic și remedieri posibile:

  1. Verifică ce actualizare a eșuat — identifică codul KB (Knowledge Base) al update-ului care a generat eroarea.

  2. Consultă jurnalele CBS (C:\Windows\Logs\CBS\CBS.log) și DISM (C:\Windows\Logs\DISM\dism.log) pentru mesaje detaliate legate de eroare.

  3. Verifică integritatea sistemului cu SFC și DISM.

  4. Verifică spațiul liber pe unitatea de sistem (dacă e „low disk space”, updateurile pot eșua).

  5. Verifică dacă există pachete de limbă (language packs) implicate — în unele cazuri, conflictul cu pack-urile de limbă poate provoca eroarea.

Aplică aceste soluții — unele trebuie făcute ca administrator:

1. Resetarea componentelor Windows Update

Deschide Command Prompt / PowerShell cu privilegii de administrator și execută comenzile următoare (una câte una):

net stop bits
net stop wuauserv
net stop appidsvc
net stop cryptsvc

Del “%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\*.*”
rmdir %systemroot%\SoftwareDistribution /S /Q
rmdir %systemroot%\system32\catroot2 /S /Q

regsvr32.exe /s atl.dll
regsvr32.exe /s urlmon.dll
regsvr32.exe /s mshtml.dll

netsh winsock reset
netsh winsock reset proxy

net start bits
net start wuauserv
net start appidsvc
net start cryptsvc

Apoi repornește PC-ul și încearcă din nou actualizarea.

2. Rularea SFC + DISM

Într-un prompt cu privilegii de administrator:

sfc /scannow

După ce s-a terminat:

DISM /Online /Cleanup-Image /RestoreHealth

Repornește sistemul după aceea.

3. Instalare manuală a actualizării

  • Mergi la site-ul Microsoft Update Catalog (catalog.update.microsoft.com) și caută actualizarea KB care a eșuat

  • Descarcă versiunea potrivită pentru versiunea ta de Windows

  • Rulează fișierul și încearcă să instalezi manual

  • Uneori, combinat cu resetarea componentelor, acest pas funcționează când metoda automată nu reușește.

4. Înlocuire / reparare „in-place upgrade” (reparație Windows)

Dacă metodele de mai sus nu funcționează, poți efectua o instalare de tip reparare („repair install”) utilizând o imagine ISO oficială a Windows:

  • Descarcă ISO-ul corespunzător versiunii tale Windows de pe site-ul Microsoft.

  • Montează ISO-ul (click dublu) și rulează setup.exe din interior.

  • Alege opțiunea de a păstra fișiere și aplicații (Keep files and applications).

  • Urmează instrucțiunile și lasă procesul să se desfășoare.

  • După ce procesul s-a încheiat, încearcă din nou actualizările.

5. Gestionarea pachetelor de limbă

Există cazuri raportate în care adăugarea sau schimbarea pachetului de limbă a permis rezolvarea erorii 0x800f0905.

De exemplu:

  • Instalează un pachet de limbă adițional (ex: English UK dacă ai English US)

  • Setează acel pachet ca limbă afișată (display language)

  • Repornește sistemul, apoi încearcă să efectuezi actualizarea

  • După ce update-ul reușește, poți elimina pachetul suplimentar dacă vrei.

[mai mult...]

Remediere Intune: Error 0x87D1FDE8

Eroarea 0x87D1FDE8 în Intune apare de regulă în contextul aplicării de profiluri de configurare (Device Configuration / Remediation) și înseamnă ceva de genul „Remediation failed” (nu s-a putut remedia/seta configurația).

Iată pașii de diagnostic și posibile soluții:

În ce caz apare / cauze comune

  • Dacă ai aplicat un Managed Browser policy (setări de URL permis/blocat) poate apărea această eroare — este un bug cunoscut, iar consola Intune poate afișa eroarea, dar dispozitivele ar putea funcționa totuși corect.

  • Se poate datora unui OMA-URI incorect în profilul de configurare (adică ai introdus greșit calea sau sintaxa).

  • Se poate întâmpla la setări legate de parole (la profiluri „Password Profile”). De exemplu, setarea unui caracter special într-o politică de parolă pe Windows 10 poate genera eroarea.

  • Uneori, politica funcționează pe dispozitive, dar raportarea stării eșuează (adică dispozitivul aplică setarea, dar Intune raportează „failed”).

  • Eroarea poate apărea și dacă dispozitivul nu îndeplinește cerințele politicii (ex: nu e conform, nu are componenta necesară, sau versiunea Windows nu suportă CSP-ul respectiv) .Pași de diagnostic

  1. În consola Intune, identifică pe care „device / configuration profile / setting” apare eroarea.

  2. Pe dispozitiv afectat, verifică jurnalul de evenimente:

    • Applications and Services Logs → Microsoft → Windows → DeviceManagement-Enterprise-Diagnostics-Provider → Admin

    • Caută evenimente legate de politica respectivă / CSP-ul respectiv pentru detalii (de ex: „The system cannot find the file specified” etc.)

  3. Verifică OMA-URI folosit în profil — asigură-te că este corect și corespunde cu ceea ce așteaptă CSP-ul.

  4. Compară dispozitivele pe care funcționează politica cu cele pe care nu — ce diferențe au (versiune OS, stări de conformitate, componente lipsă etc.).

  5. Pentru politicile de parolă, verifică dacă există opțiuni nepermise (ex: „password never expires”, „user cannot change password”) care împiedică aplicarea politicii.

  6. În cazul politicului Managed Browser, dacă apare eroarea doar în consolă și dispozitivele funcționează normal, se poate ignora (eroare cunoscută)

Soluții / remedieri

  • Corectează OMA-URI-urile: dacă ai făcut copy-paste sau ai folosit sintaxă greșită, editează profilul și folosește calea corectă.

  • Elimină sau modifică cerințele care nu pot fi aplicate pe dispozitivele respective (ex: cerințe de parolă care nu sunt suportate).

  • Dacă este vorba de politică Managed Browser, așteaptă ca dispozitivele să facă check-in — eroarea poate dispărea în consola Intune după un nou check-in.

  • Pentru profiluri de parolă, evită setarea „password never expires” sau „user cannot change password” pentru conturi locale, dacă aceste opțiuni blochează aplicarea.

  • Asigură-te că dispozitivul este actualizat și are toate componentele necesare (ex: suport pentru CSP-ul pe care profilul încearcă să îl aplice).

  • După ce faci modificările, forc-ează un sync / recheck-in pe dispozitiv (în Intune > device > Sync).

[mai mult...]