Arduino Uno + ENC28J60 can't get IP

Hi everyone, I’m new to Arduino so please bear with me. I just purchased an Arduino Uno and ENC28J60 ethernet so I can connect to the internet thru my home router.

I made the following connections:

VCC – 3.3V (my ENC28J60 doesn’t have VCC so I connect it to Q3)
GND – GND
SCK – Pin 13
SO – Pin 12
SI – Pin 11
CS – Pin 8

I used the sample code below, but when I run it it was stuck up in “ether.begin” part for both DHCP and static. I’ve tried several solutions based on my research but none work for me. Do you have any insights on this?

// Present a "Will be back soon web page", as stand-in webserver.
// 2011-01-30 <jc@wippler.nl> http://opensource.org/licenses/mit-license.php
 
#include <EtherCard.h>

#define STATIC 0  // set to 1 to disable DHCP (adjust myip/gwip values below)

#if STATIC
// ethernet interface ip address
static byte myip[] = { 192,168,1,200 };
// gateway ip address
static byte gwip[] = { 192,168,1,1 };
#endif

// ethernet mac address - must be unique on your network
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };

byte Ethernet::buffer[500]; // tcp/ip send and receive buffer

const char page[] PROGMEM =
"HTTP/1.0 503 Service Unavailable\r\n"
"Content-Type: text/html\r\n"
"Retry-After: 600\r\n"
"\r\n"
"<html>"
  "<head><title>"
    "Service Temporarily Unavailable"
  "</title></head>"
  "<body>"
    "<h3>This service is currently unavailable</h3>"
    "<p><em>"
      "The main server is currently off-line.
"
      "Please try again later."
    "</em></p>"
  "</body>"
"</html>"
;

void setup(){
  Serial.begin(9600);
  Serial.println("\n[backSoon]");
  
  if (ether.begin(sizeof Ethernet::buffer, mymac) == 0) 
    Serial.println( "Failed to access Ethernet controller");
#if STATIC
  ether.staticSetup(myip, gwip);
#else
  if (!ether.dhcpSetup())
    Serial.println("DHCP failed");
#endif

  ether.printIp("IP:  ", ether.myip);
  ether.printIp("GW:  ", ether.gwip);  
  ether.printIp("DNS: ", ether.dnsip);  
}

void loop(){
  // wait for an incoming TCP packet, but ignore its contents
  if (ether.packetLoop(ether.packetReceive())) {
    memcpy_P(ether.tcpOffset(), page, sizeof page);
    ether.httpServerReply(sizeof page - 1);
  }
}

VCC - 3.3V (my ENC28J60 doesn't have VCC so I connect it to Q3)

Why did you decide that that was the proper thing to do?

PaulS: Why did you decide that that was the proper thing to do?

I'm actually new to Arduino development so I just tested it if it will work (but it doesn't). I've also tested connecting it to 5v both on Arduino and ENC28J60 but it doesn't work as well.